《玩转Redis》系列文章主要讲述Redis的基础及中高级应用,文章基于Redis5.0.4+。本文主要讲述Redis的Key相关命令,主要包含如下内容:git
最新思惟导图原图可于公众号【zxiaofan】留言获取。github
命令 | 功能 | 参数 |
---|---|---|
EXPIRE | 设置key的过时时间 | key seconds |
PEXPIRE | 设置key的过时时间(毫秒) | key milliseconds |
EXPIREAT | 设置key的过时时间为Unix时间戳(since 1970-01-01) | key timestamp |
PEXPIREAT | 设置key的过时时间为Unix毫秒时间戳(since 1970-01-01) | key milliseconds-timestamp |
TTL | 查询指定key的剩余生存时间 | key |
PTTL | 查询指定key的剩余生存时间(毫秒) | key |
127.0.0.1:6378> set dyh @zxiaofan
OK
127.0.0.1:6378> expire dyh 5
(integer) 1
127.0.0.1:6378> ttl dyh
(integer) 0
127.0.0.1:6378> expire dyh 5
(integer) 0
127.0.0.1:6378> ttl dyh
(integer) -2
127.0.0.1:6378> set dyh @zxiaofan
OK
127.0.0.1:6378> expire dyh 50
(integer) 1
127.0.0.1:6378> ttl dyh
(integer) 47
127.0.0.1:6378> ttl dyh
(integer) 44
127.0.0.1:6378> pexpire dyh 3000
(integer) 1
127.0.0.1:6378> pttl dyh
(integer) -2
127.0.0.1:6378> set dyh @zxiaofan
OK
127.0.0.1:6378> pexpire dyh 30000
(integer) 1
127.0.0.1:6378> pttl dyh
(integer) 26575
127.0.0.1:6378> pttl dyh
(integer) 25039
127.0.0.1:6378> pexpireat dyh 1572536378000
(integer) 0
127.0.0.1:6378> pttl dyh
(integer) -2
127.0.0.1:6378> set dyh @zxiaofan
OK
127.0.0.1:6378> pexpireat dyh 1572536378000
(integer) 1
127.0.0.1:6378> ttl dyh
(integer) 86359
127.0.0.1:6378> ttl dyh
(integer) 86357
复制代码
Redis的Key命令众多,支持各式各样的功能:删除、查找、迭代、判断、排序、移动等。shell
命令
|
功能 | 参数 |
---|---|---|
DEL | 删除指定key | key [key ...] |
EXISTS | 判断指定key是否存在 | key [key ...] |
KEYS | 查找指定Pattern的key | pattern |
DUMP | 返回指定key序列化后的值 | key |
MIGRATE | 原子迁移指定key到指定实例的指定DB | host port key | "" destination-db timeout [COPY] [REPLACE] [KEYS key [key ...]] |
MOVE | 移动key到指定DB | key db |
PERSIST | 移除key的超时时间 | key |
RANDOMKEY | 返回一个随机key | 无参 |
RENAME | 重命名key | key newkey |
RENAMENX | newkey不存在时重命名key | key newkey |
RESTORE | 反序列化数据并存储到指定key | key ttl serialized-value [REPLACE] [ABSTTL] [IDLETIME seconds] [FREQ frequency] |
SORT | 返回list、set、sorted list排序后的数据 | key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC |
TOUCH | (批量)修改key的最后访问时间 | key [key ...] |
TYPE | 查询key类型 | key |
UNLINK | 将keys从keyspace中删除,后续将异步删除value | key [key ...] |
WAIT | 阻塞客户端直到超时或以前的写命令被同步到指定数量的副本 | numreplicas timeout(毫秒) |
OBJECT | 调试key对应的value,经常使用于优化 | subcommand [arguments [arguments ...]] |
【EXISTS】判断指定key是否存在数据库
【KEYS】查找指定Pattern的key安全
【DUMP】返回指定key序列化后的值bash
【MIGRATE】原子迁移指定key到指定实例的指定DB微信
【MOVE】移动key倒指定DB数据结构
【RENAME】重命名key异步
【RESTORE】反序列化数据并存储到指定key性能
【SORT】返回list、set、sorted list排序后的数据
【TYPE】查询key类型
【UNLINK】将keys从keyspace中删除,后续将异步删除value
【WAIT】阻塞客户端直到超时或以前的写命令被同步到指定数量的副本
【OBJECT】调试key对应的value,经常使用于优化
DEL、UNLINK、EXISTS、KEYS、DUMP详细对比分析:
MIGRATE、MOVE、PERSIST、RENAME、RENAMENX详细对比分析:
RESTORE、RANDOMKEY、TOUCH、TYPE、WAIT详细对比分析:
OBJECT、SORT详细对比分析:
127.0.0.1:6378> set key1 dyh
OK
127.0.0.1:6378> set key2 @zxiaofan
OK
127.0.0.1:6378> unlink key1
(integer) 1
127.0.0.1:6378> del key2
(integer) 1
127.0.0.1:6378> exists key1 key2
(integer) 0
127.0.0.1:6378> keys key*
1) "key3"
2) "keylist"
3) "key4"
4) "key"
127.0.0.1:6378> keys key?
1) "key3"
2) "key4"
127.0.0.1:6378> keys key[35]
1) "key3"
127.0.0.1:6378> keys key[^3]
1) "key4"
复制代码
127.0.0.1:6378> set key2 @zxiaofan
OK
127.0.0.1:6378> get key2
"@zxiaofan"
127.0.0.1:6378> dump key2
"\x00\t@zxiaofan\t\x00\xe8\xd2c%\x02\xc7]="
复制代码
127.0.0.1:6378> set key1 hi
OK
127.0.0.1:6378> set key2 @zxiaofan
OK
127.0.0.1:6378> select 1
OK
127.0.0.1:6378[1]> del key1
(integer) 0
127.0.0.1:6378[1]> set key2 @zxiaofan-db1
OK
127.0.0.1:6378[1]> select 0
OK
127.0.0.1:6378> move key1 1
(integer) 1
127.0.0.1:6378> move key2 1
(integer) 0
127.0.0.1:6378> get key1
(nil)
127.0.0.1:6378> get key2
"@zxiaofan"
127.0.0.1:6378> select 1
OK
127.0.0.1:6378[1]> get key2
"@zxiaofan-db1"
复制代码
127.0.0.1:6378> set key2 @zxiaofan
OK
127.0.0.1:6378> rename key2 key2019
OK
127.0.0.1:6378> rename key2 key2019
(error) ERR no such key
127.0.0.1:6378> set key1 hi
OK
127.0.0.1:6378> rename key2019 key1
OK
127.0.0.1:6378> get key1
"@zxiaofan"
127.0.0.1:6378> set key2 @zxiaofan
OK
127.0.0.1:6378> renamenx key2019 key1
(error) ERR no such key
127.0.0.1:6378> renamenx key2 key1
(integer) 0
127.0.0.1:6378> rename key2 key1
OK
复制代码
127.0.0.1:6378> set key2 @zxiaofan
OK
127.0.0.1:6378> type key2
string
127.0.0.1:6378> set key1 1
OK
127.0.0.1:6378> type key1
string
127.0.0.1:6378> lpush listkey csdn github zxiaofan.com
(integer) 6
127.0.0.1:6378> type listkey
list
127.0.0.1:6378> hmset hashkey name zxiaofan blog csdn
OK
127.0.0.1:6378> type hashkey
hash
复制代码
127.0.0.1:6378> RANDOMKEY
"list3"
127.0.0.1:6378> RANDOMKEY
"num4"
127.0.0.1:6378> RANDOMKEY
"dyh"
127.0.0.1:6378> mget list3 num4 dyh
1) (nil)
2) "200"
3) "@zxiaofan"
127.0.0.1:6378>
复制代码
关于Redis的Key命令,你掌握了多少了呢?不清楚的赶忙往上翻翻。
Redis的Key相关命令到此结束了吗?路漫漫其修远兮...
敬请关注后续《玩转Redis》系列文章。
祝君好运!
Life is all about choices!
未来的你必定会感激如今拼命的本身!
【CSDN】【GitHub】【OSCHINA】【掘金】【微信公众号】