key
-
keys
查找所有符合給定模式 pattern 的 key,支援glob風格比對
? 比對一個字元
* 比對任意個(包括0個)字元
[] 比對括号間的任一個字元,可以使用 “-” 符号表示一個範圍,如 a[b-d] 可以比對 “ab”,”ac”,”ad”
\x 比對字元x,用于轉義符号,如果要比對 “?” 就需要使用 \?
例:
redis> MSET one 1 two 2 three 3 four 4 # 一次設定 4 個 key OK redis> KEYS *o* 1) "four" 2) "two" 3) "one" redis> KEYS t?? 1) "two" redis> KEYS t[w]* 1) "two" redis> KEYS * # 比對資料庫内所有 key 1) "four" 2) "three" 3) "two" 4) "one"
-
exists
判斷某個key是否存在
指令格式:exists key
例:
127.0.0.1:6379> EXISTS key1 (integer) 0
-
type
檢視key的資料類型
指令格式:type key
例:
127.0.0.1:6379> set str "hello" OK 127.0.0.1:6379> type str string
-
rename
為key重命名
指令格式:rename key newkey
例:
127.0.0.1:6379> set str "hello" OK 127.0.0.1:6379> RENAME str str_new OK 127.0.0.1:6379> get str_new "hello"
-
randomkey
随機傳回一個key
指令格式:randomkey
例:
127.0.0.1:6379> RANDOMKEY "c"
-
del
删除key
指令格式:del key
例:
127.0.0.1:6379> del c (integer) 1
配置
-
config get
查詢配置
指令格式:config get parameter (parameter指配置名)
例:
127.0.0.1:6379> CONFIG GET * #擷取所有配置 1) "dbfilename" 2) "dump.rdb" 3) "requirepass" 4) "" 5) "masterauth" 6) "" 7) "cluster-announce-ip" 8) "" 9) "unixsocket" 10) ""
-
config set
修改配置
指令格式:config set parameter value (parameter指配置名,value指新值)
例:
127.0.0.1:6379> CONFIG get masterauth 1) "masterauth" 2) "" 127.0.0.1:6379> CONFIG set masterauth 12345 OK 127.0.0.1:6379> CONFIG get masterauth 1) "masterauth" 2) "12345"
資料庫
redis預設有0到15一共16個資料庫,每個資料庫擁有獨立的key獨立的命名空間。
-
dbsize
檢視資料庫key數量
指令格式:dbsize
例:
127.0.0.1:6379> DBSIZE (integer) 4
-
select
切換資料庫
指令格式:select index (index為資料庫号)
例:
127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]>
-
flushall
清空所有資料庫
指令格式:flushall
例:
127.0.0.1:6379> FLUSHALL OK
-
flushdb
清空目前資料庫
指令格式:flushdb
例:
127.0.0.1:6379> FLUSHDB OK
-
move
移動資料key到另一個資料庫
指令格式:move key index (index為目标資料庫)
例:
127.0.0.1:6379> MOVE one 1 (integer) 1 127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]> KEYS * 1) "one"
服務狀态
-
ping
測試client與server的連通性,如連接配接正常會傳回pong
指令格式:ping
例:
127.0.0.1:6379> ping PONG
-
info
檢視伺服器資訊,包括CPU,記憶體,複制,持久化等資訊。
指令格式:info
例:
127.0.0.1:6379> INFO # Server redis_version:4.0.9 redis_git_sha1:00000000 # Clients connected_clients:1 # Memory used_memory:848384 used_memory_human:828.50K used_memory_rss:4759552 used_memory_rss_human:4.54M # Persistence loading:0 rdb_changes_since_last_save:5 rdb_bgsave_in_progress:0 # Stats total_connections_received:3 total_commands_processed:23 instantaneous_ops_per_sec:0 total_net_input_bytes:1187 total_net_output_bytes:31491 # Replication role:master connected_slaves:0 master_replid:201f27ab290b092d11da749fb7b50ef31c9bd13b # Server redis_version:4.0.9 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:c946d801634fe2f1
-
shutdown
關閉redis
指令格式:shuown
例:
127.0.0.1:6379> SHUTDOWN not connected>
原生監控
為了友善定位故障,redis提供了原生監控指令。
-
目前連結的用戶端數和連接配接數
redis-cli –stat檢視目前連接配接的用戶端數,連接配接數等。
------- data ------ --------------------- load -------------------- - child - keys mem clients blocked requests connections 4 829.79K 1 0 0 (+0) 1 4 829.79K 1 0 1 (+0) 1 4 829.79K 1 0 2 (+1) 1 4 829.79K 1 0 3 (+1) 1 4 829.79K 1 0 4 (+1) 1 4 829.79K 1 0 5 (+1) 1 4 829.79K 1 0 6 (+1) 1 4 829.79K 1 0 7 (+1) 1 4 829.79K 1 0 8 (+1) 1 4 829.79K 1 0 9 (+1) 1 4 829.79K 1 0 10 (+1) 1
-
記憶體最大的鍵值和平均的鍵值資料
redis-cli –bigkeys 檢視目前占用記憶體最大的鍵值和平均的鍵值資料,也可以通過指定-i參數定時檢視目前的視圖情況。
# Scanning the entire keyspace to find biggest keys as well as # average sizes per key type. You can use -i 0.1 to sleep 0.1 sec # per 100 SCAN commands (not usually needed). [00.00%] Biggest string found so far 'b' with 1 bytes [00.00%] Biggest string found so far 'str' with 5 bytes -------- summary ------- Sampled 4 keys in the keyspace! Total key length in bytes is 6 (avg len 1.50) Biggest string found 'str' has 5 bytes 4 strings with 8 bytes (100.00% of keys, avg size 2.00) 0 lists with 0 items (00.00% of keys, avg size 0.00) 0 sets with 0 members (00.00% of keys, avg size 0.00) 0 hashs with 0 fields (00.00% of keys, avg size 0.00) 0 zsets with 0 members (00.00% of keys, avg size 0.00) 0 streams with 0 entries (00.00% of keys, avg size 0.00)
-
檢視目前的鍵值情況
redis-cli –scan提供和keys *相似的功能,檢視目前的鍵值情況。
[email protected]:/home/chenli# redis-cli --scan b a d str
-
原生的Monitor監控
redis-cli monitor列印出所有sever接收到的指令以及其對應的用戶端位址。
[email protected]:/home/chenli# redis-cli monitor │connected_slaves:0 OK │master_replid:8bd6c5d16383bc44ee54b05e50f8196de9711d3 1530380321.325409 [0 127.0.0.1:44484] "ping" │c 1530380326.702314 [0 127.0.0.1:44484] "info"
總結
本文簡單的總結了日常工作可能經常使用的指令,當然随着redis版本的疊代,部分指令可能會有變化。面對不同的版本時可以通過多檢視官方文檔或者使用help指令以及自動補全等來幫助我們。