前言

只是因为我去了解了以下Redis命令,觉得这些内容很不错所以记录下来~

命令概述

命令概述
del key该命令用于在 key 存在是删除 key
dump key序列化给定 key ,并返回被序列化的值
exists key检查给定 key 是否存在
expire key seconds用于设置 key 的过期时间,key 过期后将不再可用。单位以秒计。
EXPIREAT key timestampEXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。
PEXPIRE key millisecondsPEXPIRE 命令和 EXPIRE 命令的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像 EXPIRE 命令那样,以秒为单位。
PEXPIREAT key milliseconds-timestamp设置 key 的过期时间,以毫秒计。key 过期后将不再可用。
KEYS pattern查找所有符合给定模式( pattern)的 key
MOVE key db将当前数据库的 key 移动到给定的数据库 db 当中
PERSIST key移除 key 的过期时间,key 将持久保持
PTTL key以毫秒为单位返回 key 的剩余的过期时间
TTL key以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)
RANDOMKEY从当前数据库中随机返回一个 key
RENAME key newkey修改 key 的名称
RENAMENX key newkey仅当 newkey 不存在时,将 key 改名为 newkey
TYPE key返回 key 所储存的值的类型

del key

Redis DEL 命令用于删除已存在的键。不存在的 key 会被忽略。

测试记录:

127.0.0.1:6379> set my_db redis
OK
127.0.0.1:6379> 
127.0.0.1:6379> get my_db
"redis"
127.0.0.1:6379> del my_db
(integer) 1
127.0.0.1:6379> get my_db
(nil)
-- 已经删除过一次,重复删除被忽略
127.0.0.1:6379> del my_db
(integer) 0

dump key

Redis DUMP 命令用于序列化给定 key ,并返回被序列化的值。

测试记录:

127.0.0.1:6379> set my_db oracle mysql redis mongodb hive
(error) ERR syntax error
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> set my_db "oracle mysql redis mongodb hive"
OK
127.0.0.1:6379> get my_db
"oracle mysql redis mongodb hive"
127.0.0.1:6379> dump my_db
"\x00\x1foracle mysql redis mongodb hive\b\x00\xfb\x7f\x17y\t~\x9f\xba"

=======================

EXISTS key

Redis EXISTS 命令用于检查给定 key 是否存在

测试记录:

127.0.0.1:6379> set my_db "oracle mysql redis mongodb hive"
OK
127.0.0.1:6379> get my_db
"oracle mysql redis mongodb hive"
127.0.0.1:6379> exists my_db
(integer) 1
127.0.0.1:6379> exists my_db_123
(integer) 0
127.0.0.1:6379> 

Expire/Expireat/PEXPIREAT/PEXPIREAT/PERSIST/PTTL/TTL

Redis Expire 命令用于设置 key 的过期时间。key 过期后将不再可用。
Redis Expireat 命令用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。
Redis PEXPIREAT 命令用于设置 key 的过期时间,已毫秒技。key 过期后将不再可用。

Redis PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期。

Redis Pttl 命令以毫秒为单位返回 key 的剩余过期时间。
Redis TTL 命令以秒为单位返回 key 的剩余过期时间。

测试记录:

127.0.0.1:6379> set my_db "oracle mysql redis mongodb hive"
OK
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> get my_db
"oracle mysql redis mongodb hive"
127.0.0.1:6379> 
127.0.0.1:6379> expire my_db 60
(integer) 1
127.0.0.1:6379> TTL my_db
(integer) 55
127.0.0.1:6379> get my_db
"oracle mysql redis mongodb hive"
127.0.0.1:6379> 
127.0.0.1:6379> TTL my_db
(integer) 17
127.0.0.1:6379> get my_db
"oracle mysql redis mongodb hive"
127.0.0.1:6379> 
127.0.0.1:6379> TTL my_db
(integer) -2
127.0.0.1:6379> get my_db
(nil)
127.0.0.1:6379> 

Keys pattern命令

Redis Keys 命令用于查找所有符合给定模式 pattern 的 key 。。

测试记录:

127.0.0.1:6379> set my_db1 Oracle
OK
127.0.0.1:6379> set my_db2 MySQL
OK
127.0.0.1:6379> set my_db3 SQLServer
OK
127.0.0.1:6379> set my_db4 PostgreSQL
OK
127.0.0.1:6379> keys my_db*
1) "my_db3"
2) "my_db2"
3) "my_db1"
4) "my_db4"
127.0.0.1:6379> 

Move命令

Redis MOVE 命令用于将当前数据库的 key 移动到给定的数据库 db 当中。

测试记录:

-- redis默认使用数据库 0,为了清晰起见,这里再显式指定一次。
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set my_db "Oracle MySQL Redis MongoDB"
OK
127.0.0.1:6379> get my_db
"Oracle MySQL Redis MongoDB"
127.0.0.1:6379> 
-- 将 my_db 移动到数据库1
127.0.0.1:6379> move my_db 1
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> get my_db
(nil)
-- 使用数据库1
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get my_db
"Oracle MySQL Redis MongoDB"
127.0.0.1:6379[1]> 

RANDOMKEY 命令

Redis RANDOMKEY 命令从当前数据库中随机返回一个 key

测试记录:

127.0.0.1:6379> 
127.0.0.1:6379> mset my_db1 Oracle my_db2 MySQL my_db3 redis
OK
127.0.0.1:6379> randomkey
"my_db1"
127.0.0.1:6379> randomkey
"my_db3"
127.0.0.1:6379> randomkey
"my_db2"
127.0.0.1:6379> randomkey
"my_db1"
127.0.0.1:6379> keys *
1) "my_db3"
2) "my_db2"
3) "my_db1"
127.0.0.1:6379> 
127.0.0.1:6379> flushDB
OK
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 
127.0.0.1:6379> 

RENAME/RENAMENX

RENAME key newkey 修改 key 的名称
RENAMENX key newkey 仅当 newkey 不存在时,将 key 改名为 newkey

测试记录:

127.0.0.1:6379> set my_db1 Oracle
OK
127.0.0.1:6379> set my_db2 MySQL
OK
127.0.0.1:6379> rename my_db1 my_db3
OK
127.0.0.1:6379> keys *
1) "my_db3"
2) "my_db2"
127.0.0.1:6379> rename my_db2 my_db3
OK
127.0.0.1:6379> keys *
1) "my_db3"
127.0.0.1:6379> 
127.0.0.1:6379> flushDB
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 
127.0.0.1:6379> set my_db1 Oracle
OK
127.0.0.1:6379> set my_db2 MySQL
OK
127.0.0.1:6379> renamenx my_db1 my_db3
(integer) 1
127.0.0.1:6379> keys *
1) "my_db3"
2) "my_db2"
127.0.0.1:6379> renamenx my_db2 my_db3
(integer) 0
127.0.0.1:6379> keys *
1) "my_db3"
2) "my_db2"
127.0.0.1:6379> 

KEY的生命周期

命令概述
expire设置过期时间。格式是:expire key值 秒数
expireat设置过期时间,格式是:expireat key值 到期的时间戳
ttl查看还有多少秒过期,格式是:ttl key值, -1表示永不过期,-2表示已经过期
persist设置成永不过期,格式是:persist key值 删除key的过期设置;另外使用set或者getset命令为键赋值的时候,也会清除键的过期时间。
pttl查看还有多少毫秒过期,格式是:pttl key值
pexpire设置过期时间,格式是:pexpire key值 毫秒数
pexpireat设置过期时间,格式是:pexpireat key值 到期的时间戳

转自:
redis key命令
Redis 中key生命周期

最后修改:2022 年 02 月 09 日
如果觉得我的文章对你有用,请随意赞赏~