Redis 教程:通用命令

Redis 是一个开源的、基础内存的键值型存储系统。用于内存键值数据库、缓存、消息中间件等。它支持多种抽象数据结构,如字符串、散列、列表、集合、有序集合等。

Redis 通用命令是与 Redis服务器进行交互的基础,因此学习Redis 常见命令非常重要,接下来让我们来学习相关的常见命令。

首先,我们需要明确什么是Redis 中的通用命令,通用命令是那些不特定于数据类型(如字符串、列表、集合、哈希或有序集合)的命令。接下来,让我们来学习常见的通用命令。

1. EXISTS

  1. EXISTS:判断键是否存在。
  2. 语法:
EXISTS key [key ...]
  • 若键存在,返回 1
  • 若键不存在,返回 0
  • 可以同时判断多个键是否存在,若同时判断的是同一个键,则返回判断的次数
  1. 例子:

image.png

2. DEL

  1. DEL:删除特定的键,如果键不存在,该命令被忽略。
  2. 语法:
DEL key [key ...]
  • 可同时删除多个键
  • 返回值为删除的键的个数
  1. 示例:

image.png

3. KEYS

  1. keys: 返回与模式相匹配的所有的键
  2. 语法:
keys pattern
  1. 通配符:
    1. *:匹配任意数量的任意字符。
    2. ?:匹配一个任意字符。
    3. []:匹配在括号内的任一字符(比如 [a-z] 将匹配任意小写字母)。
    4. \x:转义字符,用于匹配特殊字符,比如 *?
  2. 例子:
keys redi? //匹配以redi开头,以任意字符结尾的键
keys *redis* // 匹配包含redis的键
keys red[a-z]s // 匹配将括号内的字符为a-z的键
keys \*redis  // 匹配名为*redis的键
  1. 注意事项KEYS 命令在大型数据库中使用时可能会非常慢,因为它会遍历整个键空间来匹配模式,这可能导致Redis服务器阻塞,因此不推荐在生产环境中使用。如果你的目的是为了查找特定的键,可以考虑使用 SCAN 命令,它是基于游标的迭代器,可以在不阻塞服务器的情况下逐步返回匹配的键。

4. SCAN

  1. SCAN:迭代当前选定的 Redis 数据库中的键集。允许增量迭代,即每次调用仅返回少量元素和下一次迭代的初始游标参数。由于每次调用不会遍历整个键空间,所有性能较高,适合在生产环境中适用。
  2. 语法:
SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]
  • cursor:游标参数,使用时设置为 0 代表迭代开始。当该命令返回的游标参数为 0 时,代表迭代结束。
  • MATCH 选项:匹配模式,可以用通配符进行模式匹配。
  • COUNT 选项:你期望本次迭代返回的元素个数。这并不是一个硬性要求,而是一个提示,告诉Redis在每次调用时尽量返回接近指定数量的元素。
  • TYPE 选项:要求 **SCAN** 仅返回与给定 **type** 匹配的键。例如 stringhash等。
  1. 核心要点
    • SCAN 命令并不会一次性返回所有的键,而是返回两个部分:第一个部分是下一次迭代的参数游标,用在下一次的 SCAN 命令当中,若返回的是 0 代表遍历完成;第二部分返回的本次迭代的键。
    • 在一个完整的迭代过程中,SCAN命令保证返回集合中从开始到结束所有存在的元素。
    • 如果一个元素在迭代开始的时候不存在,但在迭代的过程中被添加或一个元素在迭代的过程中被删除,SCAN命令不保证是否返回这个元素。
    • 由于SCAN命令状态信息很少(只有游标),同一个元素可能会被返回多次。应用程序需要处理这种情况,通常的方法是对返回的元素去重,例如使用Set来存储返回的键,确保每个键只处理一次。
  2. 示例:
  • 基本用法:

image.png

通过每次返回的游标作为下一次 SCAN 命令的游标参数完成迭代。

  • 使用MATCH 选项的用法:

image.png

在遍历的过程当中匹配只包含 key1 的键

  • 使用COUNT选项的用法:

image.png

SCAN 命令每次迭代获取到的键的个数是不确定的,COUNT 选项只是一个提示,告诉 Redis 尽量按照这个数量进行迭代。因此上面每次获取到的个数是不相同的。

  • 使用 TYPE选项的用法:

image.png

由于该数据库当中包含 key1 的键只有 string 类型,所以使用 TYPE 选项中只有指定为 string 才能进行迭代。

5. EXPIRE

  1. EXPIRE:给键设置过期时间(倒计时),超时之后,键自动删除。
  2. 语法:
EXPIRE key seconds
  • 根据秒数进行过期删除
  1. 示例:

image.png

10 秒之后被删除,无法获取该键的值

6. TTL

  1. TTL:查看一个键的有效期还剩多少时间。
  2. 语法:
TTL key
  • 如果键不存在,则返回 -2
  • 如果键存在存在但是没有设置过期时间,则返回-1
  • 如果键存在且有设置过期时间,则返回还剩多少时间过期
  1. 示例:

image.png


如果本文对你有帮助的话,希望可以点个赞。🥰🥰🥰

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值