【Redis資料庫】命令學習筆記——釋出訂閱、事務、指令碼、連線命令彙總
阿新 • • 發佈:2018-12-09
本篇基於redis 4.0.11版本,學習釋出訂閱、事務、指令碼、連線的相關命令。
Redis 釋出訂閱(pub/sub)是一種訊息通訊模式:傳送者(pub)傳送訊息,訂閱者(sub)接收訊息。
序號 | 命令 | 描述 | 事例 | 結果 |
1 | SUBSCRIBE channel [channel ...] | 訂閱給定的一個或多個頻道的資訊。 | 建立了訂閱頻道名為redisChat:SUBSCRIBE redisChat | Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1 |
2 | PUBLISH channel message | 將資訊傳送到指定的頻道。 | 將haha釋出到mychannel渠道:publish mychannel haha | 本視窗:"2" --返回訂閱數量 訂閱視窗:1) "message" 2) "mychannel" 3) "haha" |
3 | PSUBSCRIBE pattern [pattern ...] | 訂閱一個或多個符合給定模式的頻道。 | 訂閱my開頭模式的頻道:PSUBSCRIBE my* | Reading messages... (press Ctrl-C to quit)
1) "psubscribe" # 返回值的型別:顯示訂閱成功
2) "my*" # 訂閱的模式
3) (integer) 1 # 目前已訂閱的模式的數量
----------------------
1) "pmessage" # 返回值的型別:資訊
2) "my*" # 資訊匹配的模式
3) "mychannel" # 資訊本身的目標頻道
4) "haha" # 資訊的內容 |
4 | PUBSUB subcommand [argument [argument ...]] | 檢視訂閱與釋出系統狀態。 | 列印所有活躍頻道:PUBSUB CHANNELS 訂閱者數量:PUBSUB NUMSUB mychannel | 1) "mychannel" 2) "redisChat" --------------- 1) "mychannel" 2) (integer) 1 |
5 | UNSUBSCRIBE [channel [channel ...]] | 指退訂給定的頻道。 | ||
6 | PUNSUBSCRIBE [pattern [pattern ...]] |
退訂所有給定模式的頻道。 |
Redis 事務可以一次執行多個命令,收到 EXEC 命令後進入事務執行,事務中任意命令執行失敗,其餘的命令依然被執行,在事務執行過程,其他客戶端提交的命令請求不會插入到事務執行命令序列中。
序號 | 命令 | 描述 | 事例 | 結果 |
1 | DISCARD | 取消事務,放棄執行事務塊內的所有命令。 | 127.0.0.1:6379> MULTI OK 127.0.0.1:6379> SET greeting "hello" QUEUED 127.0.0.1:6379> DISCARD OK | |
2 | MULTI | 標記一個事務塊的開始。 | 127.0.0.1:6379> MULTI OK 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days" QUEUED 127.0.0.1:6379> GET book-name QUEUED 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series" QUEUED 127.0.0.1:6379> SMEMBERS tag QUEUED 127.0.0.1:6379> EXEC | 1) OK 2) "Mastering C++ in 21 days" 3) (integer) 3 4) 1) "Programming" 2) "C++" 3) "Mastering Series" |
3 | EXEC | 執行所有事務塊內的命令。 | ||
4 | WATCH key [key ...] | 監視一個(或多個) key ,如果在事務執行之前這個(或這些) key 被其他命令所改動,那麼事務將被打斷。 | WATCH lock lock_times | ok |
5 | UNWATCH | 取消 WATCH 命令對所有 key 的監視。 | UNWATCH | ok |
Redis 指令碼使用 Lua 直譯器來執行指令碼。 Redis 2.6 版本通過內嵌支援 Lua 環境。執行指令碼的常用命令為 EVAL。
序號 | 命令 | 描述 | 事例 | 結果 |
1 | EVAL script numkeys key [key ...] arg [arg ...] | 執行 Lua 指令碼 | eval "return {KEYS[1],KEYS[2],KEYS[3],ARGV[1]}" 3 key1 key2 first second | 1) "key1" 2) "key2" 3) "first" 4) "second" |
2 | EVALSHA sha1 numkeys key [key ...] arg [arg ...] | 執行 Lua 指令碼 | ||
3 | SCRIPT EXISTS script [script ...] | 檢視指定的指令碼是否已經被儲存在快取當中 | SCRIPT EXISTS 232fd51614574cf0867b83d384a5e898cfd24e5a | 1) (integer) 1 |
4 | SCRIPT FLUSH | 從指令碼快取中移除所有指令碼 | ||
5 | SCRIPT KILL | 殺死當前正在執行的 Lua 指令碼 | ||
6 | SCRIPT LOAD script | 將指令碼 script 新增到指令碼快取中,但並不立即執行這個指令碼 | SCRIPT LOAD "return 'hello moto'" |
"232fd51614574cf0867 b83d384a5e898cfd24e5a" |
連線 redis 服務命令:
序號 | 命令 | 描述 | 事例 | 結果 |
1 |
AUTH password |
驗證密碼是否正確 | ||
2 |
ECHO message |
列印字串 | ECHO HAHA | "HAHA" |
3 |
PING |
檢視服務是否執行 | PING | PONG # 客戶端和伺服器連線正常 |
4 |
QUIT |
關閉當前連線 | ||
5 |
SELECT index |
切換到指定的資料庫 | SELECT 2 | OK |
下一篇:JAVA呼叫redis