导图社区 Redis五大数据类型操作命令
这是一篇关于Redis五大数据类型操作命令的思维导图,包含String类型、 List类型、 Set类型、 ZSet类型、 Hash类型等。
编辑于2023-12-21 17:35:43Redis五大数据类型
String类型
增
set <key><value>添加键值对
setex <key><过期时间><value> 设置键值的同时,设置过期时间,单位秒。
setnx <key><value>只有在 key 不存在时 设置 key 的值
mset <key1><value1><key2><value2>同时设置一个或多个 key-value对
查
get <key>查询对应键值
strlen <key>获得值的长度
mget <key1><key2><key3> 同时获取一个或多个 value
getrange <key><起始位置><结束位置> 获得值的范围,类似java中的substring,前包,后包
改
incr <key>
将 key 中储存的数字值增1
只能对数字值操作,如果为空,新增值为1
decr <key>
将 key 中储存的数字值减1
只能对数字值操作,如果为空,新增值为-1
incrby / decrby <key><步长>将 key 中储存的数字值增减。自定义步长。
删
del key
特殊
append <key><value>将给定的<value> 追加到原值的末尾
getset <key><value>
以新换旧,设置了新值同时获得旧值
商品编号、订单号采用string的递增数字特性生成。
List类型
增
lpush/rpush <key><value1><value2><value3> .... 从左边/右边插入一个或多个值。
查
lrange <key><start><stop>
按照索引下标获得元素(从左到右)
lindex <key><index>按照索引下标获得元素(从左到右)
llen <key>获得列表长度
改
lset<key><index><value>将列表key下标为index的值替换成value
删
lrem <key><n><value>从左边删除n个value(从左到右)
特殊
lpop/rpop <key>从左边/右边吐出一个值。值在键在,值光键亡。
rpoplpush <key1> <key2>从<key1>列表右边吐出一个值,插到<key2>列表左边。
linsert <key> before <value><newvalue>在<value>的后面插入<newvalue>插入值
如好友列表,粉丝列表,消息队列,最新消息排行等。 rpush方法就相当于将消息放入到队列中,lpop/rpop就相当于从队列中拿去消息进行消费
通用
key设置有效时间
expire <key> <second秒>
取消key的有效时间(永久有效)
persist <key>
Hash类型
增
hset <key><field><value>给<key>集合中的 <field>键赋值<value>
hmset <key1><field1><value1><field2><value2>... 批量设置hash的值
查
hget <key1><field>从<key1>集合<field>取出 value
hmget <key1><field1> <field2>... 批量获取hash的值
hlen <key> 获取hash中field-value的数量
hexists<key1><field>查看哈希表 key 中,给定域 field 是否存在
改
hincrby <key><field><increment>为哈希表 key 中的域 field 的值加上增量 (为负既是减去)
hsetnx <key><field><value>将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在
删
hdel <key><field> 删除<key>集合中指定<field>
特殊
hgetall <key> 获取中所有的field和value
hkeys <key>列出该hash集合的所有field
hvals <key>列出该hash集合的所有value
用一个对象来存储用户信息,商品信息,订单信息等等
ZSet类型
增
zadd <key><score1><member 1><score2><member 2>…
将一个或多个 member 元素及其 score 值加入到有序集 key 当中
查
zcard<key>返回该有序集合的元素个数
zcount <key><min><max>统计该集合,分数区间内的元素个数
zrange <key><start><stop> [WITHSCORES] 从小到大排序
返回有序集 key 中,下标在<start><stop>之间的元素
带WITHSCORES,可以让分数一起和值返回到结果集
zrevrange <key><start><stop> [WITHSCORES] 从大到小排序
zrangebyscore key min max [withscores] [limit offset count]
返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
zrevrangebyscore key max min [withscores] [limit offset count]
同上,改为从大到小排列。
zrank <key><member > 返回有序集 key 中成员member 的排名。其中有序集成员按 score 值递增(从小到大)顺序排列。排名以 0 为底,也就是说, score 值最小的成员排名为 0 。
zrevrank <key><member > 获得成员按 score 值递减(从大到小)排列的排名。
改
zincrby <key><increment><member > 为元素的score加上增量
删
zrem <key><member >删除该集合下,指定值的元素
特殊
排行榜:例如视频网站需要对用户上传的视频做排行榜.
Set类型
增
sadd <key><value1><value2> .....
将一个或多个 member 元素加入到集合 key 中,已经存在的 member 元素将被忽略
查
smembers <key>取出该集合的所有值
scard<key>返回该集合的元素个数
sismember <key> value 查询集合中是否已经有该值,有返回1,没有返回0
改
删
srem <key><value1><value2> .... 删除集合中的某个元素
特殊
spop <key>随机从该集合中吐出一个值
smove <source><destination>value把集合中一个值从一个集合移动到另一个集合
sinter <key1><key2>返回两个集合的交集元素。
sunion <key1><key2>返回两个集合的并集元素。
sdiff <key1><key2>返回两个集合的差集元素(key1中有的,key2中没有的)
投票记录 共同好友、共同兴趣、分类标签