基于前面的“二八定律” 路线图,认识了 Redis 核心的五种基本数据结构,如果想要对五种数据结构做到灵活的使用,就需要了解 Redis 在数据结构之上封装的数据操作。

Redis 针对命令的设计是有一定规律的,命令的名称是由 数据结构+操作 构成,对通用的数据操作模式进行归纳

操作/数据结构string 字符串hash 字典list 列表set 集合zset 有序集合
单个键,存sethsetlpush/rpushsaddzadd
单个键,取gethgetlpop/rpop
blpop/brpop
spopzpopmax
zpopmin
bzpopmax
bzpopmin
多个键,取mgetlmpop
blmpop
zmpop
bzmpop
范围取值getrangelrangezrange
zrevrange
对不存在的键,设置值setnxhsetnxlpushx/rpushx
随机取hrandfieldsrandmemberzrandmember
删除元素delhdellremsremzrem
元素长度strlenhlenllenscardzcard
元素扫描scanhscanscanzscan

string 与 list 和 hash 的类似操作

操作/数据结构string 字符串hash 字典list 列表
获取值后,删除getdelhgetdel
获取值后,设置过期时间getexhgetex
设置值后,加上过期时间setex/psetexhsetex
指定位置插入数据setrangelinsert

string 与 hash 、zset 的类似操作

操作/数据结构string 字符串hash 字典zset 有序集合
原子计数,自增incr/incrby/incrbyfloathincrby/hincrbyfloatzincryby
原子计数,自减decr/decrby

list 与 hash 与 set 的类似操作

操作/数据结构list 列表hash 字典set 集合
键元素转移lmove
blmove
smove
成员判断hexistssismember
所有成员hgetallsmembers

set 与 zset 的类似操作

操作/数据结构set 集合zset 有序集合
取交集结果sinterzinter
保存交集结果sinterstorezinterstore
取交集结果数量sintercardzintercard
取差集结果sdiffzdiff
保存交集结果sdiffstorezdiffstore
取并集结果sunionzunion
保存并集结果sunionstorezunionstore

string 类型的特定操作

操作命令
同时设置多个键mset
在值后追加内容append
对多个键设置值后,加上过期时间msetex
对多个不存在的键,设置值msetnx
获取后,替换新值getset
最长公共子序列lcs

list 类型的特点操作

操作命令
右出左进rpoplpush
brpoplpush
元素的索引lpos
指定索引的元素lindex
修剪长度ltrim

hash 字典类型的特点操作

操作命令
单个键,取多个字段hmget
所有字段hkeys
所有值hvals
设置(毫)秒后过期hexpire
hpexpire
设置到(毫)秒级时间戳过期hexpireat
hpexpireat
获取过期(毫)秒时间戳hexpiretime
hpexpiretime
获取过期(毫)秒数httl/hpttl
持久化字段hpersist
值长度hstrlen

set 类型的特点操作

操作命令
多个成员判断smismember

zset 类型特点操作

操作命令
获取排名zrank
反向获取排名zrevrank
获取成员分值zscore
获取多个成员分值zmscore
分值范围下,查询数量zcount
相同分值下,不同成员范围下,查询数量zlexcount
范围取值并存储zrangestore
根据成员范围删除zremrangebylex
根据排名范围删除zremrangebyrank
根据分值范围删除zremrangebyscore

版权声明

作者: 观初

链接: https://www.otfot.top/posts/redis-base-command-pattern/

许可证: CC BY-NC-SA 4.0

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。请注明来源,仅限非商业性使用,并维持相同的许可。

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键