02_Redis之数据类型及操作
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

浙公网安备 33010602011771号