《玩轉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】【掘金】【微信公衆號】