当前位置: 首页 > news >正文

Redis 核心命令速查表

一、通用命令(全局操作)

命令语法功能描述时间复杂度示例
KEYSKEYS pattern匹配所有符合样式的键(支持 * ? [] 等通配符)O(N)KEYS user:*(匹配所有用户相关键)KEYS a??(匹配长度为 3、以 a 开头的键)
EXISTSEXISTS key [key...]判断键是否存在,返回存在的键数量O(1)EXISTS user:1001(返回 1 表示存在,0 表示不存在)EXISTS key1 key2(返回 2 表示两个键都存在)
DELDEL key [key...]删除指定键,返回删除成功的数量O(1)DEL user:1001(删除单个键)DEL key1 key2(批量删除键)
EXPIREEXPIRE key seconds为键设置秒级过期时间O(1)EXPIRE user:1001 3600(1 小时后过期)
PEXPIREPEXPIRE key milliseconds为键设置毫秒级过期时间O(1)PEXPIRE user:1001 1000(1 秒后过期)
TTLTTL key查看键的剩余过期时间(秒级),-1 表示永不过期,-2 表示键不存在O(1)TTL user:1001(返回 3500 表示剩余 3500 秒)
PTTLPTTL key查看键的剩余过期时间(毫秒级)O(1)PTTL user:1001(返回 3500000 表示剩余 3500 秒)
TYPETYPE key返回键对应的数据类型(string/list/hash/set/zset)O(1)TYPE user:1001(返回 "hash" 表示该键是哈希类型)
SCANSCAN cursor [MATCH pattern] [COUNT count]渐进式遍历键,避免阻塞 Redis(替代 KEYS)O(1)SCAN 0 MATCH user:* COUNT 10(从游标 0 开始,匹配用户键,每次返回 10 个)

二、字符串(String)

Redis 最基础的类型,可存储文本、数字、二进制数据(最大 512MB)。

命令语法功能描述时间复杂度示例
SETSET key value [EX seconds|PX ms] [NX|XX]设置键值,支持过期时间和条件(NX:键不存在才设置,XX:键存在才设置)O(1)SET user:name "Alice"(基础设置)SET user:name "Bob" EX 3600 NX(1 小时过期,键不存在才设置)
GETGET key获取键对应的值,键不存在返回 nilO(1)GET user:name(返回 "Alice")
MSETMSET key1 value1 key2 value2...批量设置键值O (N)(N 为键数量)MSET user:1001:name "Alice" user:1001:age 25
MGETMGET key1 key2...批量获取键值O(N)MGET user:1001:name user:1001:age(返回 ["Alice", "25"])
INCRINCR key键值为数字时,自增 1(原子操作)O(1)INCR article:1001:view(文章阅读量 +1)
DECRDECR key键值为数字时,自减 1O(1)DECR stock:iphone(库存 -1)
INCRBYINCRBY key increment键值为数字时,自增指定值O(1)INCRBY user:1001:score 10(用户分数 +10)
DECRBYDECRBY key decrement键值为数字时,自减指定值O(1)DECRBY stock:iphone 5(库存 -5)
APPENDAPPEND key value追加字符串到现有值末尾,键不存在则创建O (1)(追加短字符串时)APPEND user:desc "喜欢旅行"(在用户描述后追加文本)
STRLENSTRLEN key获取字符串长度O(1)STRLEN user:name(返回 5 表示 "Alice" 长度为 5)

三、哈希(Hash)

适合存储对象(如用户信息、商品详情),键值对的 “嵌套结构”(field-value 映射)。

命令语法功能描述时间复杂度示例
HSETHSET key field value [field value...]设置哈希的字段值,批量设置多个字段O (1)(单个字段)/ O (N)(多个字段)HSET user:1001 name "Alice" age 25(设置用户姓名和年龄)
HGETHGET key field获取哈希指定字段的值O(1)HGET user:1001 name(返回 "Alice")
HMSETHMSET key field1 value1 field2 value2...批量设置哈希字段(同 HSET 批量模式)O(N)HMSET user:1001 city "Beijing" gender "female"
HMGETHMGET key field1 field2...批量获取哈希字段值O(N)HMGET user:1001 name age city(返回 ["Alice", "25", "Beijing"])
HGETALLHGETALL key获取哈希所有字段和值(大哈希慎用,可能阻塞)O (N)(N 为字段数)HGETALL user:1001(返回所有用户信息字段)
HEXISTSHEXISTS key field判断哈希字段是否存在O(1)HEXISTS user:1001 email(返回 0 表示 email 字段不存在)
HDELHDEL key field [field...]删除哈希指定字段O (1)(单个字段)/ O (N)(多个字段)HDEL user:1001 age(删除用户年龄字段)
HKEYSHKEYS key获取哈希所有字段名O(N)HKEYS user:1001(返回 ["name", "age", "city"])
HVALSHVALS key获取哈希所有字段值O(N)HVALS user:1001(返回 ["Alice", "25", "Beijing"])
HLENHLEN key获取哈希字段数量O(1)HLEN user:1001(返回 3 表示有 3 个字段)

四、列表(List)

有序、可重复的字符串集合,支持两端插入 / 弹出,适合实现队列、栈、时间轴。

命令语法功能描述时间复杂度示例
LPUSHLPUSH key element [element...]从列表左侧(头部)插入元素O (1)(单个元素)/ O (N)(多个元素)LPUSH user:1001:msgs "msg1" "msg2"(消息从头部插入)
RPUSHRPUSH key element [element...]从列表右侧(尾部)插入元素O (1)(单个元素)/ O (N)(多个元素)RPUSH user:1001:msgs "msg3"(消息从尾部插入)
LPOPLPOP key从列表左侧弹出元素(删除并返回)O(1)LPOP user:1001:msgs(返回 "msg2",列表移除该元素)
RPOPRPOP key从列表右侧弹出元素O(1)RPOP user:1001:msgs(返回 "msg3")
LRANGELRANGE key start stop获取列表指定范围元素(0 开头,-1 表示最后一个元素)O (N)(N 为元素数量)LRANGE user:1001:msgs 0 -1(返回所有消息)LRANGE user:1001:msgs 0 1(返回前 2 条消息)
LLENLLEN key获取列表长度O(1)LLEN user:1001:msgs(返回 3 表示有 3 条消息)
LINDEXLINDEX key index获取列表指定索引的元素O(N)LINDEX user:1001:msgs 1(返回索引 1 对应的元素)
BLPOPBLPOP key [key...] timeout阻塞式从左侧弹出元素(列表为空时阻塞,超时后返回 nil)O(1)BLPOP user:1001:msgs 10(10 秒内无元素则返回 nil)
BRPOPBRPOP key [key...] timeout阻塞式从右侧弹出元素O(1)BRPOP user:1001:msgs 10

五、集合(Set)

无序、不可重复的字符串集合,支持交集、并集、差集运算,适合标签、好友关系。

命令语法功能描述时间复杂度示例
SADDSADD key member [member...]向集合添加元素(重复元素会忽略)O (1)(单个元素)/ O (N)(多个元素)SADD user:1001:tags "travel" "reading"(给用户添加标签)
SMEMBERSSMEMBERS key获取集合所有元素O(N)SMEMBERS user:1001:tags(返回 ["travel", "reading"])
SISMEMBERSISMEMBER key member判断元素是否在集合中O(1)SISMEMBER user:1001:tags "sports"(返回 0 表示不在集合中)
SREMSREM key member [member...]从集合删除元素O (1)(单个元素)/ O (N)(多个元素)SREM user:1001:tags "reading"(删除用户标签)
SCARDSCARD key获取集合元素数量O(1)SCARD user:1001:tags(返回 1 表示剩余 1 个标签)
SINTERSINTER key1 key2 [key...]计算多个集合的交集(共同元素)O (N*M)(N 为最小集合大小)SINTER user:1001:tags user:1002:tags(获取两个用户的共同标签)
SUNIONSUNION key1 key2 [key...]计算多个集合的并集(所有元素去重)O (N)(N 为总元素数)SUNION user:1001:tags user:1002:tags(合并两个用户的标签)
SDIFFSDIFF key1 key2 [key...]计算集合的差集(key1 有、其他集合没有的元素)O(N)SDIFF user:1001:tags user:1002:tags(用户 1 独有的标签)
SPOPSPOP key [count]随机删除并返回集合元素O (N)(N 为 count 数量)SPOP user:1001:tags 1(随机删除 1 个标签)

六、有序集合(ZSet)

有序、不可重复的字符串集合,每个元素关联一个 “分数(score)”,按分数排序,适合排行榜、优先级队列。

命令语法功能描述时间复杂度示例
ZADDZADD key score member [score member...]向有序集合添加元素(按 score 排序)O (logN)(N 为元素数)ZADD rank:article 100 "article:1001" 200 "article:1002"(添加文章及阅读量分数)
ZRANGEZRANGE key start stop [WITHSCORES]按 score 升序获取指定范围元素(WITHSCORES 显示分数)O (logN + M)(M 为返回元素数)ZRANGE rank:article 0 -1 WITHSCORES(升序显示所有文章及分数)
ZREVRANGEZREVRANGE key start stop [WITHSCORES]按 score 降序获取指定范围元素(适合排行榜)O(logN + M)ZREVRANGE rank:article 0 9 WITHSCORES(显示 Top 10 文章)
ZSCOREZSCORE key member获取元素对应的 scoreO(logN)ZSCORE rank:article "article:1001"(返回 100)
ZINCRBYZINCRBY key increment member元素 score 自增指定值O(logN)ZINCRBY rank:article 10 "article:1001"(文章阅读量 +10)
ZREMZREM key member [member...]从有序集合删除元素O (logN)(单个元素)/ O (N*logN)(多个元素)ZREM rank:article "article:1001"(删除文章排名)
ZCOUNTZCOUNT key min max统计 score 在 [min, max] 范围内的元素数量O(logN)ZCOUNT rank:article 100 200(统计分数 100~200 的文章数)
ZRANKZRANK key member按 score 升序获取元素排名(从 0 开始)O(logN)ZRANK rank:article "article:1001"(返回 0 表示排名第一)
ZREVRANKZREVRANK key member按 score 降序获取元素排名O(logN)ZREVRANK rank:article "article:1001"(返回 1 表示降序排名第二)
http://www.dtcms.com/a/593358.html

相关文章:

  • 中药饮片批发市场如何提升产品质量以迎合客户需求?
  • k8s中应用容器随redis集群自动重启
  • C语言结构体入门与实践:打造你的“数据百宝箱”
  • Docker核心概念与实战指南
  • 视频网站开发问题整人网站建设
  • 【Java】面向对象编程
  • 作业11.9
  • 西安网站开发公司网站服务器租用价格
  • 北京市城乡结合部建设领导小组办公室网站聊城做网站的公司效果
  • 百家号网站开发属于什么领域广东省住房和城乡建设局官网
  • MATLAB的加权K-means(Warp-KMeans)聚类算法
  • Python 图像处理库 scikit-image:从原理到实战
  • 帆软8.0报表,导出pdf无法显示图片。
  • Vue Router (命名视图)
  • CTFshow-web208
  • 美化网站代码合伙合同网站建设协议
  • 网站域名购买方法域名地址查询网
  • 【剑斩OFFER】算法的暴力美学——搜索插入位置
  • 滨州市住房和城乡建设局网站自己做网站地址
  • ctfshow-web213
  • 【Rust】C和Rust交叉编译
  • 企业网站建设长沙找工作临时工
  • 六安网站建设报价方案陕西住房和建设厅网站
  • Elasticsearch:如何为 Elastic Stack 部署 E5 模型 - 下载及隔离环境
  • 第3章,[标签 Win32] :创建窗口01,CreateWindow 函数初识
  • FreeRTOS操作系统
  • 成都 在线 网站建设wordpress怎么改标题和meta
  • 正确理解类中的公共方法、内部方法和私有方法
  • 太平洋在线企业建站系统iphone wordpress
  • 零基础入门C语言之C语言实现数据结构之单链表