Redis - 常用键操作命令详解(keys、scan、exists、del、type)
作者:hangge | 2024-11-30 09:20
1,连接退出 Redis
(1)执行如下命令可以使用 redis-cli 客户端进入 Redis 控制台,其中 -a 后面为之前我们设置的登录密码:
redis-cli -a 123
(2)执行如下命令则退出。当然使用 ctrl+c 快捷键也是可以退出的。
quit
2,获得符合规则的键:keys 命令
(1)下面命令查看数据库中所有的键:
注意:在生产环境下建议禁用 keys 命令,因为这个命令会查询过滤 redis 中的所有数据,可能会造成服务阻塞,影响 redis 执行效率。如果有类似的查询需求建议使用 scan。
kyes *
(2)keys 后面可以指定正则表达式:
keys go* keys go+
3,迭代当前数据库中的 key 集合:scan 命令
(1)scan 命令用于迭代当前数据库中的 key 集合。它支持增量式迭代,每次执行只会返回少量元素,所以它可以用于生产环境,而不会出现像 keys 命令那样可能会阻塞服务器的问题。
- scan 命令是一个基于游标的迭代器。这意味着命令每次被调用都需要使用上一次调用返回的游标作为该次调用的游标参数,以此来延续之前的迭代过程。
- 当 scan 命令的游标参数被设置为 0 时, 服务器将开始一次新的迭代, 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束。
(2)我们首先向 redis 中初始化一批数据:
set a1 1 set a2 1 set a3 1 set a4 1 set a5 1 set a6 1 set a7 1 set a8 1 set a9 1 set a10 1
(3)使用 scan 迭代数据,后面游标参数指定为 0,表示从头开始迭代 key。
scan 0
- SCAN 命令的返回值是一个包含两个元素的数组:
- 第一个元素是用于进行下一次迭代的新游标(注意:游标的值并不等于返回的数据量)
- 而第二个元素则是一个数组, 这个数组中包含了所有被迭代出来的元素。
(4)如果想要继续往下面迭代数据的话,下一次执行 scan 的时候需要指定之前返回的游标,redis 会根据这个游标继续往下面迭代。
提示:返回的游标为 0,表示迭代已经结束,整个 redis 中的 key 都被迭代完了。
(5)如果想要在迭代 key 的时候对 key 进行过滤,可以在 scan 后面指定 match 参数,match 后面可以指定正则表达式。
scan 0 match a[2-5] count 10
4,判断键是否存在:exists 命令
(1)下面命令分别判断 a0、a1 这两个键是否存在:
exists a0 exists a1
(2)执行结果如下:
5,删除键:del 命令
(1)下面命令将 a1 这个键删除:
del a1
(2)del 也支持一次删除多个 key
del a1 a2
6,获得键值的类型:type 命令
(1)type 命令可以帮我们快速识别某一个 key 中存储的数据是什么类型的,因为针对存储了不同类型值的 key,操作的命令是不一样的。
type a10
(2)返回值可能是这五种类型(string、hash、list、set、zset)
全部评论(0)