key通用操作
key 特徵:
key是一個字符串,通過key獲取redis中保存的數據
key的相關操作:
對於key自身狀態的相關操作,例如:刪除,判定存在,獲取類型等
對於key有效性控制相關操作,例如:有效期設定,判定是否有效,有效狀態的切換等
對於key快速查詢操作,例如:按指定策略查詢key
- 刪除指定key
del key
- 獲取key是否存在
exists key
案例:
127.0.0.1:6379> zadd user 10 xx 20 yy 30 ww
(integer) 3
127.0.0.1:6379> EXISTS user
(integer) 1 存在
- 獲取key的類型
type key
案例:
127.0.0.1:6379> zadd user 10 xx 20 yy 30 ww
(integer) 3
127.0.0.1:6379> type user
zset
127.0.0.1:6379> SET name haha
OK
127.0.0.1:6379> type name
string
127.0.0.1:6379> hset age uid 20
(integer) 1
127.0.0.1:6379> type age
hash
key 擴展操作(時效性控制)
- 爲指定key設置有效期
expire key seconds 秒
pexpire key milliseconds 毫秒
expireat key timestamp 時間戳
pexpireat key milliseconds-timestamp 毫秒時間戳
案例:
127.0.0.1:6379> EXPIRE name 5
(integer) 1
127.0.0.1:6379> get name
"haha"
127.0.0.1:6379> get name
(nil)
- 獲取key的有效時間
ttl key
pttl key
案例:
127.0.0.1:6379> EXPIRE name 10
(integer) 1
127.0.0.1:6379> TTL name
(integer) 4 剩餘有效時間
注意: 當key沒有設置有效期,ttl指令的返回值爲-1, 當key設置了有效期,ttl指令返回的數字爲剩餘有效期,若返回-2則代表該key已過期
- 切換key從時效性轉換爲永久性
persist key
案例:
127.0.0.1:6379> set name haha
OK
127.0.0.1:6379> EXPIRE name 60
(integer) 1
127.0.0.1:6379> ttl name
(integer) 55
127.0.0.1:6379> PERSIST name
(integer) 1
127.0.0.1:6379> ttl name
(integer) -1
key 擴展操作(查詢key)
keys pattern pattern是匹配規則
查詢模式規則:
* 匹配任意數量的任意符號 ? 配合一個任意符號 [] 匹配一個指定符號
keys * 查詢所有
keys it* 查詢所有以it開頭
keys *haha 查詢所有以haha結尾
keys ??haha 查詢所有前面兩個字符任意,後面以haha結尾
keys user:? 查詢所有以user:開頭,最後一個字符任意
keys u[st]er:1 查詢所有以u開頭,以er:1結尾,中間包含一個字母,s或t
key 其他操作
- 爲key改名
rename key newkey
renamenx key newkey
數據庫通用操作
key 的重複問題:
redis在使用過程中,伴隨着操作數據量的增加,會出現大量的數據以及對應的key
數據不區分種類、類別混雜在一起,極易出現重複或衝突
解決方案
redis爲每個服務提供有16個數據庫,編號從0到15,每個數據庫之間的數據相互獨立
養成合理的命名規範
db 基本操作
- 切換數據庫
select index
- 其他操作
dbsize 查看當前庫中有多少key
quit 退出
ping 客戶端與服務端是否連接
echo message
- 數據移動
將數據移動到指定數據庫, 前提:db中沒有這個key
move key db
- 數據清除
flushdb 清空當前庫
flushall 清空所有庫