Redis常见命令

一、两个最核心的命令 get set

1、set

作用:设置键值对 key value

语法:set key value

2、get

作用:获取对应 key 的 value

语法:get key

返回值:如果存在就返回 vlaue,不存在就返回 "nil"(类似于 NULL)

二、几个常见全局命令

全局命令就是能搭配任意数据结构 value 使用的命令。

在 Redis 中,key 类型就是 string,value 类型最常见的就是 string(字符串), hash(哈希表), list(链表), set(集合), zset(有序集合), stream(消息队列对应的 value 类型)

所以对于不同的 value 类型肯定会有不同的命令,但是这里介绍的是能搭配所有类型的全局命令。

1、keys

作用:查询匹配格式的 key

语法:keys pattern

pattern 就是匹配格式。? 代表匹配任意一个字符,* 代表匹配任意个数的字符,ab 代表可以匹配字符 a 或字符 b,\^a 表示匹配除了 a 以外的所有字符,a-e 表示匹配字符 a ~ e 中任意字符。

返回值:返回匹配到的 key

注意:时间复杂度是 O(N)

2、exists

作用:判断查找的 key 是否存在

语法:exists key key ... 可以查找多个 key 用空格隔开

返回值:返回存在的个数

注意:时间复杂度是 O(N) 这里的 N 是查找几个 key 就是 O 几,查一个是 O(1) 且 Redis 是服务器客户端通过网络通信的,通信成本相对高,所以推荐一次查找多个 key 减少网络通信时间,提高速度。

3、del

作用:删除指定的 key 和对应的 value

语法:del key key ...

返回值:返回删除个数

注意:注意点和 exists 一样。另外当 Redis 作为缓存的时候,删除操作的危险性低于数据库删除,因为缓存的删除只是删除热点数据,对于全量数据没进行删除,可以恢复,但是如果一大半的缓存数据被 del 了,数据库的请求量暴增就会导致数据库挂掉,所以也是有危险的。

4、expire

作用:给 key 设置过期时间,单位秒。pexpire 单位就是毫秒。

语法:expire key second

返回值:返回1表示成功,0表示失败。

注意:时间复杂度 O(1),业务场景是验证码,优惠券,分布式锁(防止锁没有释放)

5、ttl

作用:查询 key 的剩余过期时间,单位秒。pttl 单位就是毫秒。

语法:ttl key

返回值:返回 key 的剩余过期时间,-1表示未设置过期时间,-2表示不存在对应 key

6、type

作用:返回 key 对应 value 的类型。

语法:type key

返回值:none(key不存在),string, list, set, zset, hash, stream

注意:时间复杂度是 O(1)

三、key 的过期策略

这里介绍定期删除和惰性删除。

定期删除:每次抽出一部分 key 进行检测。保证的是一次足够快,因为 Redis 是单线程,不敢让定期删除占用正常的请求。

惰性删除:过期之后不会删除,当用户用到时发现过期了再进行删除。

相关推荐
天桥下的卖艺者4 小时前
使用scitable包,两步生成逆概率删失权重(IPCW)
数据库·r语言
隔窗听雨眠4 小时前
AI原生数据库浪潮:国产数据库的架构重构与路径之争
数据库
数据库小学妹4 小时前
数据库选型实战:从数据类型到TCO成本,五维决策框架+九款产品横评
数据库·信创·国产数据库·数据库选型·oracle迁移
神龙天舞20015 小时前
MySQL 备库为什么会延迟好几个小时
android·数据库·mysql
丙氨酸長鏈7 小时前
Web前端入门第 问:JavaScript 一个简单的 IndexedDB 数据库入门示例
前端·javascript·数据库
独行侠影a7 小时前
APScheduler+Redis 分布式定时任务:解决多实例任务重复执行
数据库·redis·分布式
传说故事8 小时前
数据库中一些常用英文单词含义
数据库·oracle
夏贰四8 小时前
中小企业搭建业务中台如何控成本?业务中台轻量化落地分几步实施?
数据库·业务中台
梅孔立9 小时前
两种免费的翻译API调用方式详解 - Edge官方API与个人缓存服务
前端·缓存·edge
林焱RPA9 小时前
影刀RPA200篇纪念版:最实用的20个自动化场景大盘点
数据库