数据结构
redis 是 key-value 的数据结构,每条数据都是一个键值对
键的类型是字符串
注意:键不能重复
值的类型分为五种:
字符串string
哈希hash
列表list
集合set
有序集合zset

数据操作行为
保存
修改
获取
删除

1、string类型
1.1、保存:
如果设置的键不存在则为添加,如果设置的键已经存在则修改

设置键值
set key value
例如:设置键为name值为itcast的数据
set name itcast

设置键值及过期时间,以秒为单位
setex key seconds value
例如:设置键为name值为itcast时间为3秒的数据
setex name1 3 itcast

同时设置多个键值
mset key1 value1 key2 value2 key3 value3
例如:
mset a1 python a2 java a3 c

追加值:
append key value
例如:
append a1 haha


1.2、获取

获取:根据键获取值,如果不存在此键则返回nil
get key
例如:get name

根据多个键获取多个值
mget key1 key2
例如:mget a1 a2 a3


1.3、键命令
查找建,参数支持正则表达式
keys pattern
例如:查看所有的键
keys *
查看名称中包含a的键
key a*

判断键是否存在,如果存在返回1,不存在返回0
exists key1
例如:exists a1

查看键对应的value的类型
type key
例如:type a1

1.4、删除键及对应的值
del key1 key2
例如:del a2 a3

1.5、设置过期时间,以秒为单位
如果没有指定过期时间,则一直存在,直到使用DEL移除
expire key seconds
例如 expire a1 3

1.6、查看有效时间,以秒为单位(剩下的)
ttl key

2、Hash类型
hash用于储存对象,对象的结构为属性、值
值的类型为string

2.1、增加、修改
设置单个属性
hset key field value
例如:设置键user的属性name为itheima
hset user name itheima
设置多个属性
hmset key field1 value1 field2 value2
例如:设置键u2的属性name为itcast,属性age为11
hmset u2 name itcast age 11

2.2、获取
获取指定键所有的属性
hkeys key
例如:hkeys u2
获取一个属性的值
hget key field
例如:hget u2 name
获取多个属性的值
hmget key field1 field2

获取所有属性的值
hvals key
例如:hvals u2


2.3、删除
删除整个hash键及值,使用del命令
删除属性,属性对应的值会被一起删除
hdel key field1 field2
例如:hdel u2 age

3、列表list
列表的元素类型为string
按照插入顺序排序

3.1、增加
在左侧插入数据
lpush key value1 value2
例如:从键为a1的列表左侧加入数据a、b、c
lpush a1 a b c
右侧插入数据
rpush key value1 value2
例如:从键为a1 的列表右侧加入数据 0 1
rpush a1 0 1

在指定元素的前或后插入新元素
linsert key before或after 现有元素 新元素
例如:在键为 a1 的列表中元素 b 前 加入 3
linsert a1 before b 3

3.2、获取
返回列表里指定范围内的元素
start、stop 为元素的下标索引
索引从左侧开始,第一个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
lrange key start stop

例如获取键为a1 的列表所有元素
lrange a1 0 -1


3.3、设定指定索引位置的元素值

索引从左侧开始,第一个元素为0
索引可以是负数,表示尾部开始计数,如-1表示最后一个元素
lset key index value

可以进行修改键的值
例如:修改键为a1的列表中下标为1的元素值为 z
lset a 1 z

3.4、删除
删除指定元素
将列表中前count 次出现的值为value的元素移除
count > 0:从头往尾移除
count < 0:从尾往头移除
count = 0:移除所有
lrem key count value

4、set类型
无序集合
元素为string类型
元素具有唯一性,不重复
说明:对集合没有修改操作

4.1、增加
添加元素
sadd key member1 member2
向键 a3 的集合中添加元素shangsan lisi wangwu
sadd a3 zhangsan lisi wangwu

4.2、获取
返回所有元素
smembers key
例如 smembers a3

4.3、删除
删除指定元素
srem key member1
例如:srem a3 wangwu

4、zset类型
有序集合
元素为string类型
元素具有唯一性,不重复
每一个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到达排序

4.1、增加
添加元素
zadd key score1 member1 score2 member2
向键 a4 的集合中添加元素shangsan lisi wangwu,权重分别为4、5、6
zadd a4 4 zhangsan 5 lisi 6 wangwu

4.2、获取
返回列表里指定范围内的元素
start、stop 为元素的下标索引
索引从左侧开始,第一个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
zrange key start stop

例如获取键为a1 的列表所有元素
zrange a4 0 -1

返回score 值在min和max之间的成员
zrangebyscore key min max
例如zrangebyscore a4 5 6

返回成员member的score值
zscore key member
例如 :zscore a4 zhangsan

4.3、删除
删除指定元素
zrem key member1
例如:zrem a4 zhangsan

删除权重在指定范围的元素
zremrangebyscore key min max
例如:zremrangebyscore a4 5 6