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

Redis ④-通用命令

在这里插入图片描述
Redis 是一个 客户端-服务器 结构的程序,这与 MySQL 是类似的,这点需要牢记!!!
Redis 固然好,但也不是任何场景都适合使用 Redis,一定要根据当前的业务需求来选择是否使用 Redis

Redis 通用命令

Redis 的命令有很多,借助官方文档可以更快的找到自己想要的命令
Redis 命令参考

set get

set key value
get key

getset 是 Redis 最基本的命令,用于获取和设置键值对。

如果键不存在,get 会返回 nilset 会创建一个新键。

What Is the Difference Between ‘Null’ and ‘Nil’
‘Null’ and ‘Nil’ are synonymous and both mean ‘zero’ or ‘nothing’ in value. The two words differ by what field we use them in. We use ‘Null’ mostly in maths, programming, business, and legal matters. On the other hand, we use ‘Nil’ in sports and games.
keyvalue 都是字符串类型,不需要加上引号,加上单引号和双引号也不会报错,但是不推荐。

Redis 的命令是不区分大小写的,但是推荐使用小写,因为更好看~~

keys

keys pattern

keys 命令用于获取所有键的名称。

pattern 表示匹配模式,Redis 官方提供了多种匹配模式,可以根据需要选择:

h?llo matches hello, hallo and hxllo ? 匹配任何单个字符
h*llo matches hllo and heeeello *匹配任何数量的字符
h[ae]llo matches hello and hallo, but not hillo [ae] 只能匹配 a 和 e
h[^e]llo matches hallo, hbllo, … but not hello [^e] 匹配除了 e 之外的任何字符
h[a-b]llo matches hallo and hbllo, but not hello or hillo [a-b] 匹配 a 到 b 之间的任何字符
注意事项:
keys * 可以获取所有键,但是不推荐使用,因为 Redis 使用的是单线程,如果数据库里有大量的键,会导致查询速度缓慢,从而影响其他客户端的请求响应。

当使用 Redis 作为缓存数据库(MySQL)时,若 Redis 服务器阻塞,则可能会导致全量数据库的请求突增,导致数据库崩溃。

exists

exists key [key...]

exists 命令用于判断键是否存在。

返回值为 key 存在的个数,如果 key 不存在,则返回 0。

一次性可以查询多个键是否存在。

如果有一次性查询多个键的需求,也更推荐一次性查询完所有需要查询的。由于 Redis 客户端 和 Redis 服务器之间是通过网络通信的,每发起一次查询都会构造一个请求,多次查询会导致效率比较低。

del

del key [key...]

del 命令用于删除键。

返回值为被删除的 key 数量。

如果作为 缓存数据库,可以使用 del 命令删除一些没用的键,因为数据还是存储在全量数据库里。

如果作为 全量数据库,则不推荐使用 del 命令

如果作为消息队列,则根据业务需求来看

expire

expire key seconds

expire 命令用于设置键的过期时间。

返回 1 表示设置成功,0 表示设置失败。

pexpire

pexpire key milliseconds-timeout

pexpire 命令用于设置键的过期时间,单位是毫秒。

返回 1 表示设置成功,0 表示设置失败。

ttl

ttl key

ttl 命令用于获取键的剩余过期时间。

返回值是秒数,-1 表示没有设置过期时间,-2 表示键不存在。

pttl

pttl key

pttl 命令用于获取键的剩余过期时间,单位是毫秒。

返回值是毫秒数,-1 表示没有设置过期时间,-2 表示键不存在。

type

type key

type 命令用于获取改键对应的值的类型。

返回值可以是 string, list, set, zset, hash, stream…


Redis 键的过期策略

Redis 键的过期策略主要有两种:

  • 定期删除:Redis 会在一定时间内,抽取一部分键,查看其是否过期,如果过期,则删除。由于 Redis 是单线程的,所以需要尽可能这个过程足够快,不然会影响其他客户端的请求响应。
  • 惰性删除:Redis 不会主动删除过期的键,而是客户端每次获取键时,检查是否过期,如果过期,则删除该键,同时返回一个 nil。

相关文章:

  • JavaWeb 课堂笔记 —— 15 MyBatis 基础操作
  • PG psql --single-transaction 参数功能
  • JavaScript 位掩码常量教程
  • Python range 使用详解
  • Oracle--用户管理
  • React 路由入门秘籍:BrowserRouter 的江湖之道
  • C++STL教程入门
  • python生成项目依赖文件requirements.txt
  • Rocky Linux 9.1 修改网卡和DNS
  • 操作系统中的虚拟化技术深度对话
  • 认知升级:把握人工智能教育化转型的历史机遇
  • trae海外版无限流白嫖指南,解决有限流,总提示在排队难题
  • 主机运行状态的监控命令(top命令)
  • React基础知识(补充中)
  • 19. git reflog
  • GIS开发笔记(9)结合osg及osgEarth实现三维球经纬网格绘制及显隐
  • Nginx静态资源跳转添加权限验证
  • optool为macho文件增加动态库
  • 从零创建 Docker 镜像(基于 OCI 格式)
  • Datawhale 春训营 创新药赛道
  • 国泰海通合并后首份业绩报告出炉:一季度净利润增逾391%
  • 辽宁省委书记、省长连夜赶赴辽阳市白塔区火灾事故现场,指导善后处置工作
  • 2024“好评中国”网络评论大赛结果揭晓
  • 贵州茅台一季度净利268亿元增长11.56%,系列酒营收增近两成
  • 上海通报5起违反中央八项规定精神问题
  • 商务部:4月份以来的出口总体延续平稳增长态势