02_Redis之数据类型及操作

02_Redis之数据类型及操作

image-20240412150210121

一、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
posted @ 2025-03-25 20:13  Invinc-Z  阅读(25)  评论(0)    收藏  举报