標籤:redis redis資料庫管理 redis鍵到期 redis訂閱與發布
### 資料庫管理
keys pattern # 尋找鍵,參數萬用字元尋找
keys * # 查看所有鍵
keys n* # 查看以n開頭的所有鍵
keys *e # 查看以e結尾的所有鍵
keys h?llo
keys h[ae]llo
exists name # 查看name這個鍵是否存在,存在為1,不存在為0
type key # 查看鍵對應的value的類型
type name
del key1 key2 ... # 刪除鍵及對應的值
del addr
rename key newkey # 將鍵的名字從key改成newkey,如果newkey已存在,則覆蓋
rename num1 num3
renamenx key newkey # 將鍵的名字從key改成newkey,如果newkey已存在,則不做動作
renamenx num3 num2
# 通過調用sort命令對列表、集合以及有序集合進行排序
sort key [by pattern] [limit offset count] [get pattern [get pattern]] [asc|desc] [alpha] [store destination]
rpush numbers 9 5 1 3 2
sort numbers # 預設情況下sort命令會將鍵包含的值解釋為浮點數,然後對浮點數進行排序
sort numbers asc
sort numbers desc
sadd names peter jack tom
sort names alpha # 使用alpha讓sort命令基於字典序對文字進行排序
sort numbers limit 0 3 # 不跳過任何值,返回最開頭的三個值
sort numbers limit 3 3 # 逃過最開頭的三個值,然後返回緊接著的三個值
sort numbers store sorted-numbers # 通過指定store destkey,我們將排序結果儲存到destkey中,排序的結果會以列表的形式儲存
randomkey # 從當前資料庫中隨機的返回一個鍵,被返回的鍵不會被刪除
# scan命令以漸進的方式分多次遍曆整個資料庫,並返回匹配給定模式的鍵
# cursor是遍曆時使用的遊標,開始新的遍曆時需要將cursor設定為0,每次調用scan,命令都會返回一個新的遊標值,再次調用scan需要輸入整個遊標值
# match pattern用於指定要匹配的模式
# count number指定這次遍曆最多要返回多少個鍵
scan cursor [match pattern] [count number]
scan 0
sscan key cursor [match pattern] [count number] # 代替可能會阻塞伺服器的smembers命令,遍曆集合包含的各個元素
sscan names 0
hscan key cursor [match pattern] [count number] # 代替可能會阻塞伺服器的hgetall命令,遍曆散列包含的各個索引值對
hscan daiby::info 0
zscan key cursor [match pattern] [count number] # 代替可能會阻塞伺服器的zrange命令,遍曆有序集合包含的各個元素
zscan "blog::paging" 0
dbsize # 返回資料庫目前包含的索引值對數量
flushdb # 刪除當前資料庫包含的所有索引值對
select num # 切換資料庫
move key target-db # 將當前資料庫中的key移動到目標資料庫中,如果目標資料庫已經有同名的key,則不做動作
move numbers 1
flushall # 刪除redis所有資料庫裡面的索引值對
# 鍵到期功能
# expire 和 pexpire的作用是讓鍵在N秒鐘或者N毫秒之後被刪除
# expireat 和 pexpireat的作用則是讓鍵在指定的Unix時間到達之後被刪除
expire key seconds # 設定鍵存留時間,以秒為單位,如果沒有指定到期時間則一直存在,直到使用DEL移除
expire name 5
pexpire key milliseconds # 設定鍵存留時間,以毫秒為單位,一秒鐘等於1000毫秒,redis預設100毫秒一次檢查鍵是否到期
pexpire msg 5500
expireat key timestamp # 設定鍵到期時間,指定秒級Unix時間戳記
expireat msg 100000005
pexpireat key milliseconds-timestamp # 設定鍵到期時間,指定毫秒級Unix時間戳記
pexpireat msg 100000000000005
pttl key # 查看剩餘存留時間,以毫秒為單位
ttl key # 查看剩餘存留時間,以秒為單位
ttl age
persist # 刪除存留時間或到期時間
persist msg
setex key seconds value # 設定索引值及到期時間,以秒為單位
set age 5 18
psetex key millisecond value # 設定索引值及到期時間,以毫秒為單位;相當於執行了set和pexpire兩個命令
set age 5000 18
### 發布與訂閱
subscribe channel [channel...] # 訂閱給定的一個或多個頻道
subscribe news::it
psubscribe pattern [pattern...] # 訂閱一個或多個模式,pattern參數可以包含glob風格的匹配符(*,[],?)
psubscirbe news::[ie]t
# 退訂命令的行為在各個用戶端的表現都不同,redis-cli直接退出用戶端來退訂,Python和ruby則需要顯示的執行命令
unsubcribe [channel|[channel...]] # 退訂指定的頻道,如果沒有指定則退訂已訂閱的所有頻道
punsubcribe [pattern|[pattern...]] # 退訂指定的模式,如果沒有指定則退訂已訂閱的所有模式
channels # 顯示已訂閱的頻道
publish channel message # 將訊息發送至指定的頻道,命令返回收到資訊的訂閱者數量
pubsub channels [pattern] # 列出至少有一個訂閱者的頻道
pubsub numsub [channel...] # 返回給定頻道的訂閱者數量
pubsub numpat # 返回被訂閱的模式數量
本文出自 “戴柏陽的部落格” 部落格,請務必保留此出處http://daibaiyang119.blog.51cto.com/3145591/1964015
Redis常用命令(四)資料庫管理、鍵管理、訂閱發布