Redis 键(key)
Redis 键(key)
Redis 键命令用于管理 redis 的键。
语法
Redis 键命令的基本语法如下:
redis 127.0.0.1:6379> COMMAND KEY_NAME
实例
redis 127.0.0.1:6379> set appblog redis
OK
redis 127.0.0.1:6379> del appblog
(integer) 1
在以上实例中 del 是一个命令,appblog 是一个键。如果键被删除成功,命令执行后输出(integer) 1
,否则将输出(integer) 0
Redis keys 命令
更多命令参考:https://redis.io/commands
del key
该命令用于在 key 存在时删除 key
dump key
序列化给定 key,并返回被序列化的值
exists key
检查给定 key 是否存在
expire key seconds
为给定 key 设置过期时间,以秒计
expireat key timestamp
expireat 的作用和 expire 类似,都用于为 key 设置过期时间。 不同在于 expireat 命令接受的时间参数是 UNIX 时间戳(unix timestamp)
pexpire key milliseconds
设置 key 的过期时间以毫秒计
pexpireat key milliseconds-timestamp
设置 key 过期时间的时间戳(unix timestamp) 以毫秒计
keys pattern
查找所有符合给定模式( pattern)的 key
redis 127.0.0.1:6379> SET appblog1 redis
OK
redis 127.0.0.1:6379> SET appblog2 mysql
OK
redis 127.0.0.1:6379> SET appblog3 mongodb
OK
redis 127.0.0.1:6379> KEYS runoob* # 查找以 runoob 为开头的 key
1) "appblog3"
2) "appblog1"
3) "appblog2"
redis 127.0.0.1:6379> KEYS * # 获取 redis 中所有的 key 可用使用 *
1) "appblog3"
2) "appblog1"
3) "appblog2"
move key db
将当前数据库的 key 移动到给定的数据库 db 当中
# key 存在于当前数据库
redis> SELECT 0 # redis默认使用数据库 0,为了清晰起见,这里再显式指定一次。
OK
redis> SET song "secret base - Zone"
OK
redis> MOVE song 1 # 将 song 移动到数据库 1
(integer) 1
redis> EXISTS song # song 已经被移走
(integer) 0
redis> SELECT 1 # 使用数据库 1
OK
redis:1> EXISTS song # 证实 song 被移到了数据库 1 (注意命令提示符变成了"redis:1",表明正在使用数据库 1)
(integer) 1
# 当 key 不存在的时候
redis:1> EXISTS fake_key
(integer) 0
redis:1> MOVE fake_key 0 # 试图从数据库 1 移动一个不存在的 key 到数据库 0,失败
(integer) 0
redis:1> select 0 # 使用数据库0
OK
redis> EXISTS fake_key # 证实 fake_key 不存在
(integer) 0
# 当源数据库和目标数据库有相同的 key 时
redis> SELECT 0 # 使用数据库0
OK
redis> SET favorite_fruit "banana"
OK
redis> SELECT 1 # 使用数据库1
OK
redis:1> SET favorite_fruit "apple"
OK
redis:1> SELECT 0 # 使用数据库0,并试图将 favorite_fruit 移动到数据库 1
OK
redis> MOVE favorite_fruit 1 # 因为两个数据库有相同的 key,MOVE 失败
(integer) 0
redis> GET favorite_fruit # 数据库 0 的 favorite_fruit 没变
"banana"
redis> SELECT 1
OK
redis:1> GET favorite_fruit # 数据库 1 的 favorite_fruit 也是
"apple"
persist key
移除 key 的过期时间,key 将持久保持
- 当过期时间移除成功时,返回 1
- 如果 key 不存在或 key 没有设置过期时间,返回 0
pttl key
以毫秒为单位返回 key 的剩余的过期时间
- 当 key 不存在时,返回 -2
- 当 key 存在但没有设置剩余生存时间时,返回 -1
- 否则,以毫秒为单位,返回 key 的剩余生存时间
ttl key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)
randomkey
从当前数据库中随机返回一个 key
rename key newkey
修改 key 的名称
当OLD_KEY_NAME
和NEW_KEY_NAME
相同,或者OLD_KEY_NAME
不存在时,返回一个错误。当NEW_KEY_NAME
已经存在时,RENAME 命令将覆盖旧值
renamenx key newkey
仅当 newkey 不存在时,将 key 改名为 newkey
scan cursor [MATCH pattern] [COUNT count]
Redis Scan 命令用于迭代数据库中的数据库键。
SCAN 命令是一个基于游标的迭代器,每次被调用之后,都会向用户返回一个新的游标,用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数,以此来延续之前的迭代过程。
SCAN 返回一个包含两个元素的数组,第一个元素是用于进行下一次迭代的新游标,而第二个元素则是一个数组,这个数组中包含了所有被迭代的元素。如果新游标返回 0 表示迭代已结束。
相关命令:
- SSCAN 命令用于迭代集合键中的元素
- HSCAN 命令用于迭代哈希键中的键值对
- ZSCAN 命令用于迭代有序集合中的元素(包括元素成员和元素分值)
语法
redis scan 命令基本语法如下:
scan cursor [MATCH pattern] [COUNT count]
- cursor - 游标
- pattern - 匹配的模式
- count - 指定从数据集里返回多少元素,默认值为 10
redis 127.0.0.1:6379> scan 0 # 使用 0 作为游标,开始新的迭代
1) "17" # 第一次迭代时返回的游标
2) 1) "key:12"
2) "key:8"
3) "key:4"
4) "key:14"
5) "key:16"
6) "key:17"
7) "key:15"
8) "key:10"
9) "key:3"
10) "key:7"
11) "key:1"
redis 127.0.0.1:6379> scan 17 # 使用的是第一次迭代时返回的游标 17 开始新的迭代
1) "0"
2) 1) "key:5"
2) "key:18"
3) "key:0"
4) "key:2"
5) "key:19"
6) "key:13"
7) "key:6"
8) "key:9"
9) "key:11"
type key
返回 key 所储存的值的类型
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/24/redis-key/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论