02_Redis之数据类型及操作

一、String类型及操作
是二进制安全的,可以存放任意类型的数据。
# 设置与获取值
set k1 value1
get k1# 设置key对应的值为string 类型的value。如果key已存在,返回0,nx 是 not exist 的意思
setnx k1 value2 # 设置key对应的值为string 类型的value,并指定此键值对应的有效期
setex k3 10 value3 # 设置子串
setrange key offset value # 获取子串
getrange key start end #如果想找到最后一个可以使用-1# 一次设置多个key值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置
mset k2 value2 k3 value3 k4 value4...# 一次获取多个key值
mget k1 k2 k3 ....# 设置key的值,并返回key的旧值
getset key value # incr/incyby 增加的key的value必须是数值类型
# decr/decrby 减少的key的value必须是数值类型# 追加字符串
append key value# 取字符串长度
strlen key
二、Hash类型及操作
字典,Key-value模式不变,key对应字典名字,但value是一个键值对,等价于 map<key, map<key1, value>>
# 添加元素
hset key field value [field value] # 返回值为成功设置的字段数量
hsetnx key field value [field value]
hmset key field value [field value] # 返回值始终为ok 更推荐使用hset#获取元素
hget key field #设置与获取多个
hmset/hmget# 指定field加上给定值
hincrby key field increment # 测试指定field是否存在
hexists key field # 返回field数量
hlen key # 删除field
hdel key field [field ...] # 返回指定key的所有field
hkeys key # 返回指定key的所有value
hvals key # 返回指定key的所有field和vlaue
hgetall key
三、List类型及操作
双向链表 key对应链表名字
# 添加元素有左右(头尾)之分
lpush/rpush key value1 value2 value3 ....# 在key对应list的特定位置之前或之后添加字符串元素
linsert key before|after pivot element# 可以使用下标进行设置lset
lset key [idx] newValue# 删除指定数量的相同value
lrem key count value
# count:指定移除元素的数量和方向:
# count > 0:从列表头部(左侧)开始搜索,移除与value相等的元素,最多移除count个。
# count < 0:从列表尾部(右侧)开始搜索,移除与value相等的元素,最多移除|count|个。
# count = 0:移除列表中所有与value相等的元素。
# value:要移除的元素值。# 保留范围内的数据(截取字串)
ltrim key start end # 删除头或者尾,并返回删除元素
lpop/rpop key # 从src尾部移除元素并添加到dest头部,返回被移除的元素值
rpoplpush src dest# 遍历
lrange key start end# 可以使用下标进行获取元素
lindex key [idx]# 返回key对应list的长度
llen key
四、Set类型及操作
集合,底层使用的是哈希表,也就表明set中的元素是没有顺序的。
# 添加元素
sadd key value1 value2 value3....# 删除元素
srem key value1 value2 value3....# 遍历
smembers key# 移除并返回集合中的一个/num个随机元素
spop key [num] # 在集合中随机选出num个数元素,不删除元素
srandmemberr key num # 返回所有给定key与第一个key的差集
sdiff key [key ...]# 返回所有给定key与第一个key的差集,并将结果存为另一个key
sdiffstore dest key [key ...]# 返回所有给定key的交集
sinter key [key ...]# 返回所有给定key的交集,并将结果存为另一个key
sinterstore dest key [key ...]# 返回所有给定key的并集
sunion key [key ...]# 返回所有给定key的并集,并将结果存为另一个key
sunionstore dest key [key ...]# 移除src中的member,并放入dest中
smove src dest member# 返回元素个数
scard key# 判断是否为成员
sismember key value
五、Sorted Set类型及操作
可以为每个key设置double类型的分数进行排序
# 添加元素
zadd key score1 value1 score2 value2 ....# 遍历元素(按score从小到大排序)
zrange key start end [withscores]# 遍历元素(按score从大到小排序)首先按score从大到小排序,再取出全部元素
zrevrange key start end [withscores]# 删除名称为key的zset中的元素member
zrem key member [member ...]# 如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment
zincrby key increment member# 返回member排名的下标(按score从小到大排序)
zrank key member # 返回member排名的下标(按score从大到小排序)
zrevrank key member # 返回集合中score在给定区间的元素
zrangebyscore key min max withscores# 返回集合中score在给定区间的数量
zount key min max# 返回集合中元素个数
zcard key# 返回给定元素对应的score
zscore key member# 删除集合中排名在给定区间的元素
zremrangebyrank key start stop# 删除集合中score在给定区间的元素
zremrangebyscore key min max