Redis 通用命令

KEYS

  • 语法: KEYS pattern
  • 功能: 返回所有匹配 pattern 的键
  • 可以使用该命令的Redis版本: 1.0.0
  • 时间复杂度: O(N) N指的是在数据库中的键的数量

不建议在生成环境使用该命令,因为是扫描整个数据库的键查询,会造成阻塞

支持的全局样式模式:

  • h?llo 匹配 hello,hallo并且hxllo
  • h*llo 匹配 hllo 和 heeeello
  • h[ae]llo 匹配 hello 和 hallo,不匹配 hillo
  • h[^e]llo 匹配 hallo, hbllo, ... 但不匹配 hello
  • h[a-b]llo 匹配 hallo 和 hbllo

如果要逐字匹配特殊字符,请使用转义字符 \

# 查看所有的键
127.0.0.1:6379> keys *
1) "age"
2) "color"
3) "gender"
4) "name"

# 查看以a开头的键
127.0.0.1:6379> keys a*
1) "age"

# 查看包含a的键
127.0.0.1:6379> keys *a*
1) "age"
2) "name"
127.0.0.1:6379> 

DEL

  • 语法: DEL key [key ...]
  • 功能: 删除指定的键,如果键不存在,则忽略它
  • 可以使用该命令的Redis版本: 1.0.0
  • 时间复杂度: O(N) 其中 N 是要移除的键的数量, 当要删除的键包含字符串以外的值时,该键的单个复杂度为 O(M),其中 M 是列表、集合、排序集或散列中的元素数。删除包含字符串值的单个键是 O(1)。

示例:

127.0.0.1:6379> set name tom
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> 

EXISTS

  • 语法: EXISTS key [key ...]
  • 功能: 检查指定的键是否存在
  • 可以使用该命令的Redis版本: 1.0.0 (3.0.3版本之后才接受多个key)
  • 时间复杂度: O(N) N指的是要检查的键的数量
  • 返回一个整数, 它指的是要检查的键中, 存在的键的个数

示例:

127.0.0.1:6379> keys *
1) "age"
2) "name"
127.0.0.1:6379> EXISTS name
(integer) 1
127.0.0.1:6379> EXISTS name age
(integer) 2
127.0.0.1:6379> EXISTS gender
(integer) 0
127.0.0.1:6379> EXISTS name gender
(integer) 1
127.0.0.1:6379> 

EXPIRE

  • 语法: EXPIRE key seconds [ NX | XX | GT | LT]
  • 功能: 设置键的超时时间(单位/秒),超时后,键被自动删除
  • 可以使用该命令的Redis版本: 1.0.0
  • 时间复杂度: O(1)
  • 返回一个整数
    • 1 如果超时被设置成功
    • 0 如果超时被设置失败 (例如:键不存在,或者由于提供的参数而跳过了操作)

*注意: 这个超时的设置只会被删除或覆盖键内容的命令清除,包括 DEL, SET, GETSET 和 所有的 STORE 命令。
这意味着,所有在概念上更改存储在键中的值而不使用新值替换的操作都将保持超时不变。
例如: 使用 INCR 增加键的值, 使用 LPUSH 向列表压入新的值,或者使用 HSET 修改散列的字段值, 这些操作都不会影响超时时间。

TTL

  • 语法: TTL key
  • 功能: 返回具有超时的键的剩余生存时间(单位/秒)
  • 可以使用该命令的Redis版本: 1.0.0
  • 时间复杂度: O(1)
  • 返回一个整数, 以秒为单位的 TTL
    • 如果键不存在,该命令将返回 -2 (2.8.0 版本增加的)
    • 如果键存在但没有关联的过期,则该命令返回 -1

示例:

127.0.0.1:6379> SET name tom
OK
127.0.0.1:6379> EXPIRE name 100
(integer) 1
127.0.0.1:6379> TTL name
(integer) 98


127.0.0.1:6379> SET age 22
OK
127.0.0.1:6379> TTL age
(integer) -1
127.0.0.1:6379> 
posted @ 2022-06-27 11:13  Broadm  阅读(73)  评论(0编辑  收藏  举报