Redis 服務器
參考資料 :http://www.runoob.com/redis/redis-server.html
實例
如下實例演示瞭如何獲取 redis 服務器的統計信息:
INFO
Redis 服務器命令
下表列出了 redis 服務器的相關命令:
序號 命令及描述
1 BGREWRITEAOF
異步執行一個 AOF(AppendOnly File) 文件重寫操做
Redis Bgrewriteaof 命令用於異步執行一個 AOF(AppendOnly File) 文件重寫操做。重寫會建立一個當前 AOF 文件的體積優化版本。
即便 Bgrewriteaof 執行失敗,也不會有任何數據丟失,由於舊的 AOF 文件在 Bgrewriteaof 成功以前不會被修改。
注意:從 Redis 2.4 開始, AOF 重寫由 Redis 自行觸發, BGREWRITEAOF 僅僅用於手動觸發重寫操做。
語法
redis Bgrewriteaof 命令基本語法以下:
redis 127.0.0.1:6379> BGREWRITEAOF
可用版本
>= 1.0.0
返回值
反饋信息。
實例
redis 127.0.0.1:6379>
Background append only file rewriting started
2 BGSAVE
在後臺異步保存當前數據庫的數據到磁盤
Redis Bgsave 命令用於在後臺異步保存當前數據庫的數據到磁盤。
BGSAVE 命令執行以後當即返回 OK ,而後 Redis fork 出一個新子進程,原來的 Redis 進程(父進程)繼續處理客戶端請求,而子進程則負責將數據保存到磁盤,而後退出。
語法
redis Bgsave 命令基本語法以下:
redis 127.0.0.1:6379> BGSAVE
實例
redis> BGSAVE
Background saving started
3 CLIENT KILL [ip:port] [ID client-id]
關閉客戶端鏈接
Redis Client Kill 命令用於關閉客戶端鏈接。
語法
redis Client Kill 命令基本語法以下:
redis 127.0.0.1:6379> CLIENT KILL ip:port
成功關閉時,返回 OK 。
實例
# 列出全部已鏈接客戶端
redis 127.0.0.1:6379> CLIENT LIST
addr=127.0.0.1:43501 fd=5 age=10 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
# 殺死當前客戶端的鏈接
redis 127.0.0.1:6379> CLIENT KILL 127.0.0.1:43501
OK
# 以前的鏈接已經被關閉,CLI 客戶端又從新創建了鏈接
# 以前的端口是 43501 ,如今是 43504
redis 127.0.0.1:6379> CLIENT LIST
addr=127.0.0.1:43504 fd=5 age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
4 CLIENT LIST
獲取鏈接到服務器的客戶端鏈接列表
Redis Client List 命令用於返回全部鏈接到服務器的客戶端信息和統計數據。
語法
redis Client List 命令基本語法以下:
redis 127.0.0.1:6379> CLIENT LIST
可用版本
>= 2.4.0
返回值
命令返回多行字符串,這些字符串按如下形式被格式化:
每一個已鏈接客戶端對應一行(以 LF 分割)
每行字符串由一系列 屬性=值 形式的域組成,每一個域之間以空格分開
如下是域的含義:
addr : 客戶端的地址和端口
fd : 套接字所使用的文件描述符
age : 以秒計算的已鏈接時長
idle : 以秒計算的空閒時長
flags : 客戶端 flag
db : 該客戶端正在使用的數據庫 ID
sub : 已訂閱頻道的數量
psub : 已訂閱模式的數量
multi : 在事務中被執行的命令數量
qbuf : 查詢緩衝區的長度(字節爲單位, 0 表示沒有分配查詢緩衝區)
qbuf-free : 查詢緩衝區剩餘空間的長度(字節爲單位, 0 表示沒有剩餘空間)
obl : 輸出緩衝區的長度(字節爲單位, 0 表示沒有分配輸出緩衝區)
oll : 輸出列表包含的對象數量(當輸出緩衝區沒有剩餘空間時,命令回覆會以字符串對象的形式被入隊到這個隊列裏)
omem : 輸出緩衝區和輸出列表佔用的內存總量
events : 文件描述符事件
cmd : 最近一次執行的命令
客戶端 flag 能夠由如下部分組成:
O : 客戶端是 MONITOR 模式下的附屬節點(slave)
S : 客戶端是通常模式下(normal)的附屬節點
M : 客戶端是主節點(master)
x : 客戶端正在執行事務
b : 客戶端正在等待阻塞事件
i : 客戶端正在等待 VM I/O 操做(已廢棄)
d : 一個受監視(watched)的鍵已被修改, EXEC 命令將失敗
c : 在將回復完整地寫出以後,關閉連接
u : 客戶端未被阻塞(unblocked)
A : 儘量快地關閉鏈接
N : 未設置任何 flag
文件描述符事件能夠是:
r : 客戶端套接字(在事件 loop 中)是可讀的(readable)
w : 客戶端套接字(在事件 loop 中)是可寫的(writeable)
實例
redis 127.0.0.1:6379> CLIENT LIST
addr=127.0.0.1:43143 fd=6 age=183 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
addr=127.0.0.1:43163 fd=5 age=35 idle=15 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
addr=127.0.0.1:43167 fd=7 age=24 idle=6 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=get
5 CLIENT GETNAME
獲取鏈接的名稱
Redis Client Getname 命令用於返回 CLIENT SETNAME 命令爲鏈接設置的名字。 由於新建立的鏈接默認是沒有名字的, 對於沒有名字的鏈接, CLIENT GETNAME 返回空白回覆。
語法
redis Client Getname 命令基本語法以下:
redis 127.0.0.1:6379> CLIENT GETNAME
可用版本
>= 2.6.9
返回值
若是鏈接沒有設置名字,那麼返回空白回覆; 若是有設置名字,那麼返回名字。
實例
# 新鏈接默認沒有名字
redis 127.0.0.1:6379> CLIENT GETNAME
(nil)
# 設置名字
redis 127.0.0.1:6379> CLIENT SETNAME hello-world-connection
OK
# 返回名字
redis 127.0.0.1:6379> CLIENT GETNAME
"hello-world-connection"
6 CLIENT PAUSE timeout
在指定時間內終止運行來自客戶端的命令html
7 CLIENT SETNAME connection-name
設置當前鏈接的名稱
8 CLUSTER SLOTS
獲取集羣節點的映射數組
Redis Client Slots 命令用於當前的集羣狀態,以數組形式展現。
語法
redis Client Slots 命令基本語法以下:
redis 127.0.0.1:6379> CLUSTER SLOTS
可用版本
>= 3.0.0
返回值
IP/端口嵌套的列表數組。
實例
redis 127.0.0.1:6379> cluster slots
1) 1) (integer) 0
2) (integer) 4095
3) 1) "127.0.0.1"
2) (integer) 7000
4) 1) "127.0.0.1"
2) (integer) 7004
2) 1) (integer) 12288
2) (integer) 16383
3) 1) "127.0.0.1"
2) (integer) 7003
4) 1) "127.0.0.1"
2) (integer) 7007
3) 1) (integer) 4096
2) (integer) 8191
3) 1) "127.0.0.1"
2) (integer) 7001
4) 1) "127.0.0.1"
2) (integer) 7005
4) 1) (integer) 8192
2) (integer) 12287
3) 1) "127.0.0.1"
2) (integer) 7002
4) 1) "127.0.0.1"
2) (integer) 7006
9 COMMAND
獲取 Redis 命令詳情數組
10 COMMAND COUNT
獲取 Redis 命令總數
11 COMMAND GETKEYS
獲取給定命令的全部鍵
12 TIME
返回當前服務器時間
返回值:一個包含兩個字符串的列表: 第一個字符串是當前時間(以 UNIX 時間戳格式表示),而第二個字符串是當前這一秒鐘已經逝去的微秒數。
13 COMMAND INFO command-name [command-name ...]
獲取指定 Redis 命令描述的數組
14 CONFIG GET parameter
獲取指定配置參數的值
15 CONFIG REWRITE
對啓動 Redis 服務器時所指定的 redis.conf 配置文件進行改寫
16 CONFIG SET parameter value
修改 redis 配置參數,無需重啓
17 CONFIG RESETSTAT
重置 INFO 命令中的某些統計數據
18 DBSIZE
返回當前數據庫的 key 的數量
19 DEBUG OBJECT key
獲取 key 的調試信息
20 DEBUG SEGFAULT
讓 Redis 服務崩潰
21 FLUSHALL
刪除全部數據庫的全部key
22 FLUSHDB
刪除當前數據庫的全部key
23 INFO [section]
獲取 Redis 服務器的各類信息和統計數值
24 LASTSAVE
返回最近一次 Redis 成功將數據保存到磁盤上的時間,以 UNIX 時間戳格式表示
25 MONITOR
實時打印出 Redis 服務器接收到的命令,調試用
26 ROLE
返回主從實例所屬的角色
返回一個數組:第一個參數是 master, slave, sentinel 三個中的一個。
27 SAVE
異步保存數據到硬盤
28 SHUTDOWN [NOSAVE] [SAVE]
異步保存數據到硬盤,並關閉服務器
29 SLAVEOF host port
將當前服務器轉變爲指定服務器的從屬服務器(slave server)
30 SLOWLOG subcommand [argument]
管理 redis 的慢日誌
31 SYNC
用於複製功能(replication)的內部命令redis