备注:测试版本 redis 4.0.9
文章目录
key命令概述
命令 | 概述 |
---|---|
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 |
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 所储存的值的类型 |
1.1 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
1.2 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"
1.3 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>
1.4 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>
1.4 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>
1.5 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]>
1.6 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>
1.7 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>