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

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。
http://www.xdnf.cn/news/640.html

相关文章:

  • 解决Docker 配置 daemon.json文件后无法生效
  • 【数据可视化-19】智能手机用户行为可视化分析
  • Windows 环境下安装 MariaDB 及 HeidiSQL 使用教程
  • 玩机搞机基本常识-------小米OLED屏幕机型怎么设置为永不休眠_手机不息屏_保持亮屏功能 拒绝“烧屏” ?
  • 【Vim】vim的简单使用
  • 小迪第10天http/s数据包
  • JavaScript 一维数组转二维数组
  • 修改PointLIO项目
  • STM32配置系统时钟
  • 【PyTorch】训练时跟OOM相关的提示信息
  • AI大模型之模型幻觉
  • 【HarmonyOS 5】makeObserved接口详解
  • Java表达式1.0
  • 爱在冰川-慢就是快
  • IDEA在Git提交时添加.ignore忽略文件,解决为什么Git中有时候使用.gitignore也无法忽略一些文件
  • SpringAI系列 - MCP篇(一) - 什么是MCP
  • Linux | I.MX6ULL 文件系统
  • 测试基础笔记第七天
  • 【QT】 QT中的列表框-横向列表框-树状列表框-表格列表框
  • 介绍一下 nuScenes 数据集
  • LeetCode283.移动零
  • 缓存 --- 内存缓存 or 分布式缓存
  • [OS_7] 访问操作系统对象 | offset | FHS | Handle
  • 性能比拼: Go vs Bun
  • LeRobot 项目部署运行逻辑(一)——综述
  • 深度学习总结(25)
  • 认知升级:把握人工智能教育化转型的历史机遇
  • xss学习3之服务端session
  • 2025.4.20总结
  • 【Bluedroid】蓝牙 HID 设备信息加载与注册机制及配置缓存系统源码解析