目录

keys

scan(渐进式遍历)

exists

del

expire / pexpire

ttl/pttl

type

object encoding


keys

作用:

查寻已经存在的键值对的key

命令介绍:

keys [pattern]

pattern是一个类似于正则表达式的模式串,只有和pattern匹配的key才能被显示,下面是paterrn的几种特殊字符的含义:
h?llo :?表示任意单个字符(不会匹配0个),例如 hello , hallo 和 hxllo
h*llo :* 表示0个或者若干个。例如hllo 和 heeeello
h[ae]llo :[x1x2...] 表示匹配括号中的某个字符。例如hello 和 hallo 但不匹配 hillo
h[^e]llo : ^x 表示匹配一个非x的字符(不会匹配0个)。匹配 hallo , hbllo 但不匹配 hello
h[a-b]llo :[x-y]表示匹配x-y里面的某个字符。配 hallo 和 hbllo

注意:

keys时间复杂度是n,而Redis是单线程执行命令,所以工作中绝对不要keys * ,否则就会阻塞Redis很久

scan(渐进式遍历)

SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]

cursor:一个字符串,表示从哪里开始遍历key,“0”表示从头开始。注意,这个不是下标0,1,2,3,3不一定就是第四个没遍历过的元素,cursor是redis内部使用的标识符,和下标没有任何关系,每次scan的输出第一行都会告诉我们下一次遍历的cursor应该指定多少,我们以这个为准

[MATCH pattern]:和keys命令中的pattern作用一样,都是匹配指定类型的key

[COUNT count]:表示建议redis这次要遍历几个KEY(不是拿取,只要遍历过就算),注意,是建议,redis实际遍历的key可能少一点或者多一点。默认是10

[TYPE type]:表示要遍历存放哪种类型value的key


注意:

  • 如果遍历过程中key被修改,那就可能出现类似于迭代器失效的后果,可能会重读遍历、遗漏一些key。
  • redis的scan过程不会在服务器中保存任何状态

exists

作用:

一次性判断若干个键值对是否存在,返回判断成功并且确实存在的键值对个数

命令介绍:

Exists key1 key2 ... ...

注意:

Exists执行查询一次的时间复杂度是O(1)

del

作用:

删除若干个键值对,返回成功删除的个数

命令介绍:

del key1 key2... ...

expire / pexpire

作用:

按照秒/毫秒为单位给键值对设置过期时间,到期自动删除

命令介绍:

expire [键值] [时间]//秒为单位
pexpire [键值] [时间]//毫秒为单位

ttl/pttl

作用:

按照秒/毫秒为单位查询键值对的过期时间

命令介绍:

ttl [键值] //秒为单位查询某key的过期时间
pttl [键值] //毫秒为单位查询某key的过期时间

type

作用:显示key对应的value类型

命令介绍:

type [键值]

object encoding

作用:查看一个key对应的value的实际编码方式(而非表面上的数据类型)

命令介绍:

object encoding [键值]
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐