Redis 服務器命令主要是用于管理 redis 服務希痴。
實例
以下實例演示了如何獲取 redis 服務器的統(tǒng)計信息:
redis 127.0.0.1:6379> INFO
# Server
redis_version:3.2.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:4d2050541c69b013
redis_mode:standalone
os:Linux 2.6.32-573.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.4.7
process_id:2330
run_id:955613d3ad935f3dee07156fab4ec98a2f1d40a5
tcp_port:6379
uptime_in_seconds:554
uptime_in_days:0
hz:10
lru_clock:618066
executable:/home/gp6/redis/redis-3.2.6/src/./redis-server
config_file:/home/gp6/redis/myRedis/redis.conf
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:822688
used_memory_human:803.41K
used_memory_rss:7782400
used_memory_rss_human:7.42M
used_memory_peak:822688
used_memory_peak_human:803.41K
total_system_memory:1967984640
total_system_memory_human:1.83G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:9.46
mem_allocator:jemalloc-4.0.3
# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1510566952
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
# Stats
total_connections_received:1
total_commands_processed:1
instantaneous_ops_per_sec:0
total_net_input_bytes:31
total_net_output_bytes:5916769
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
migrate_cached_sockets:0
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
# CPU
used_cpu_sys:1.05
used_cpu_user:2.37
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
# Cluster
cluster_enabled:0
# Keyspace
db0:keys=1,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
Redis 服務器命令
下表列出了 redis 服務器的相關命令:
-
1 Bgrewriteaof
Redis Bgrewriteaof 命令用于異步執(zhí)行一個 AOF(AppendOnly File) 文件重寫操作。重寫會創(chuàng)建一個當前 AOF 文件的體積優(yōu)化版本怜姿。
即使 Bgrewriteaof 執(zhí)行失敗慎冤,也不會有任何數(shù)據(jù)丟失瘦穆,因為舊的 AOF 文件在 Bgrewriteaof 成功之前不會被修改例嘱。
注意:從 Redis 2.4 開始顽铸, AOF 重寫由 Redis 自行觸發(fā)皂岔, BGREWRITEAOF 僅僅用于手動觸發(fā)重寫操作麸锉。
# 語法
redis 127.0.0.1:6379> BGREWRITEAOF
# 返回值
反饋信息复隆。
# 實例
127.0.0.1:6379> BGREWRITEAOF
Background append only file rewriting started
-
2 Bgsave
Redis Bgsave 命令用于在后臺異步保存當前數(shù)據(jù)庫的數(shù)據(jù)到磁盤俱萍。
BGSAVE 命令執(zhí)行之后立即返回 OK 宰缤,然后 Redis fork 出一個新子進程立磁,原來的 Redis 進程(父進程)繼續(xù)處理客戶端請求呈队,而子進程則負責將數(shù)據(jù)保存到磁盤,然后退出唱歧。
# 語法
redis 127.0.0.1:6379> BGSAVE
# 返回值
反饋信息宪摧。
# 實例
127.0.0.1:6379> BGSAVE
Background saving started
-
3 Client Kill
Redis Client Kill 命令用于關閉客戶端連接。
# 語法
redis 127.0.0.1:6379> CLIENT KILL ip:port
# 返回值
成功關閉時迈喉,返回 OK 绍刮。
# 實例
# 列出所有已連接客戶端
127.0.0.1:6379> CLIENT LIST
id=2 addr=127.0.0.1:44143 fd=5 name= age=1099 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
# 殺死當前客戶端的連接
127.0.0.1:6379> CLIENT KILL 127.0.0.1:44143
OK
# 之前的連接已經(jīng)被關閉,CLI 客戶端又重新建立了連接
# 之前的端口是 44143 挨摸,現(xiàn)在是 44144
127.0.0.1:6379> CLIENT LIST
id=3 addr=127.0.0.1:44144 fd=5 name= 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 Getname
Redis Client Getname 命令用于返回 CLIENT SETNAME 命令為連接設置的名字孩革。 因為新創(chuàng)建的連接默認是沒有名字的, 對于沒有名字的連接得运, CLIENT GETNAME 返回空白回復膝蜈。
# 語法
redis 127.0.0.1:6379> CLIENT GETNAME
# 返回值
如果連接沒有設置名字,那么返回空白回復熔掺; 如果有設置名字饱搏,那么返回名字。
# 實例
# 新連接默認沒有名字
127.0.0.1:6379> CLIENT GETNAME
(nil)
# 設置名字
127.0.0.1:6379> CLIENT SETNAME hello-world-connection
OK
# 返回名字
127.0.0.1:6379> CLIENT GETNAME
"hello-world-connection"
-
5 Client List
Redis Client List 命令用于返回所有連接到服務器的客戶端信息和統(tǒng)計數(shù)據(jù)置逻。
# 語法
redis 127.0.0.1:6379> CLIENT LIST
# 返回值
命令返回多行字符串推沸,這些字符串按以下形式被格式化:
每個已連接客戶端對應一行(以 LF 分割)
每行字符串由一系列 屬性=值 形式的域組成,每個域之間以空格分開
以下是域的含義:
addr : 客戶端的地址和端口
fd : 套接字所使用的文件描述符
age : 以秒計算的已連接時長
idle : 以秒計算的空閑時長
flags : 客戶端 flag
db : 該客戶端正在使用的數(shù)據(jù)庫 ID
sub : 已訂閱頻道的數(shù)量
psub : 已訂閱模式的數(shù)量
multi : 在事務中被執(zhí)行的命令數(shù)量
qbuf : 查詢緩沖區(qū)的長度(字節(jié)為單位券坞, 0 表示沒有分配查詢緩沖區(qū))
qbuf-free : 查詢緩沖區(qū)剩余空間的長度(字節(jié)為單位鬓催, 0 表示沒有剩余空間)
obl : 輸出緩沖區(qū)的長度(字節(jié)為單位, 0 表示沒有分配輸出緩沖區(qū))
oll : 輸出列表包含的對象數(shù)量(當輸出緩沖區(qū)沒有剩余空間時恨锚,命令回復會以字符串對象的形式被入隊到這個隊列里)
omem : 輸出緩沖區(qū)和輸出列表占用的內(nèi)存總量
events : 文件描述符事件
cmd : 最近一次執(zhí)行的命令
客戶端 flag 可以由以下部分組成:
O : 客戶端是 MONITOR 模式下的附屬節(jié)點(slave)
S : 客戶端是一般模式下(normal)的附屬節(jié)點
M : 客戶端是主節(jié)點(master)
x : 客戶端正在執(zhí)行事務
b : 客戶端正在等待阻塞事件
i : 客戶端正在等待 VM I/O 操作(已廢棄)
d : 一個受監(jiān)視(watched)的鍵已被修改宇驾, EXEC 命令將失敗
c : 在將回復完整地寫出之后,關閉鏈接
u : 客戶端未被阻塞(unblocked)
A : 盡可能快地關閉連接
N : 未設置任何 flag
文件描述符事件可以是:
r : 客戶端套接字(在事件 loop 中)是可讀的(readable)
w : 客戶端套接字(在事件 loop 中)是可寫的(writeable)
# 實例
redis 127.0.0.1:6379> CLIENT LIST
id=3 addr=127.0.0.1:44144 fd=5 name=hello-world-connection age=527 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
-
6 Client Pause
Redis Client Pause 命令用于阻塞客戶端命令一段時間(以毫秒計)猴伶。课舍。
# 語法
redis 127.0.0.1:6379> CLIENT PAUSE timeout
# 返回值
返回 OK塌西。如果 timeout 參數(shù)是非法的返回錯誤。
# 實例
127.0.0.1:6379> CLIENT PAUSE
(error) ERR Syntax error, try CLIENT (LIST | KILL | GETNAME | SETNAME | PAUSE | REPLY)
127.0.0.1:6379> CLIENT PAUSE 1000
OK
-
7 Client Setname
Redis Client Setname 命令用于指定當前連接的名稱筝尾。
這個名字會顯示在 CLIENT LIST 命令的結果中捡需, 用于識別當前正在與服務器進行連接的客戶端。
# 語法
redis 127.0.0.1:6379> CLIENT SETNAME connection-name
# 返回值
設置成功時返回 OK 忿等。
# 實例
# 新連接默認沒有名字
127.0.0.1:6379> CLIENT GETNAME
(nil)
# 設置名字
127.0.0.1:6379> CLIENT SETNAME hello-world-connection
OK
# 返回名字
redis 127.0.0.1:6379> CLIENT GETNAME
"hello-world-connection"
# 在客戶端列表中查看
redis 127.0.0.1:6379> CLIENT LIST
id=3 addr=127.0.0.1:44144 fd=5
name=hello-world-connection # <- 名字
age=865 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
# 清除名字
127.0.0.1:6379> CLIENT SETNAME # 只用空格是不行的栖忠!
(error) ERR Syntax error, try CLIENT (LIST | KILL ip:port)
127.0.0.1:6379> CLIENT SETNAME "" # 必須雙引號顯示包圍
OK
127.0.0.1:6379> CLIENT GETNAME # 清除完畢
(nil)
-
8 Cluster Slots
Redis Client Slots 命令用于當前的集群狀態(tài)崔挖,以數(shù)組形式展示贸街。
# 語法
redis 127.0.0.1:6379> CLUSTER SLOTS
# 返回值
IP/端口嵌套的列表數(shù)組。
# 實例
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 Command 命令用于返回所有的Redis命令的詳細信息狸相,以數(shù)組形式展示薛匪。
# 語法
redis 127.0.0.1:6379> COMMAND
# 返回值
嵌套的Redis命令的詳細信息列表。列表順序是隨機的脓鹃。
# 實例
127.0.0.1:6379> COMMAND
#內(nèi)容過多 ,只截取一部分
......
23) 1) "zrank"
2) (integer) 3
3) 1) readonly
2) fast
4) (integer) 1
5) (integer) 1
6) (integer) 1
24) 1) "readwrite"
2) (integer) 1
3) 1) fast
4) (integer) 0
5) (integer) 0
6) (integer) 0
25) 1) "zrange"
2) (integer) -4
3) 1) readonly
4) (integer) 1
5) (integer) 1
6) (integer) 1
26) 1) "hlen"
2) (integer) 2
3) 1) readonly
2) fast
4) (integer) 1
5) (integer) 1
6) (integer) 1
27) 1) "rpushx"
2) (integer) 3
3) 1) write
2) denyoom
3) fast
4) (integer) 1
5) (integer) 1
6) (integer) 1
28) 1) "randomkey"
2) (integer) 1
3) 1) readonly
2) random
4) (integer) 0
5) (integer) 0
6) (integer) 0
29) 1) "set"
2) (integer) -3
3) 1) write
2) denyoom
4) (integer) 1
5) (integer) 1
6) (integer) 1
......
-
10 Command Count
Redis Command Count 命令用于統(tǒng)計 redis 命令的個數(shù)逸尖。
# 語法
redis 127.0.0.1:6379> COMMAND COUNT
# 返回值
redis 命令數(shù)。
# 實例
127.0.0.1:6379> COMMAND COUNT
(integer) 172
-
11 Command Getkeys
Redis Command Getkeys 命令用于獲取所有 key瘸右。
# 語法
redis 127.0.0.1:6379> COMMAND GETKEYS
# 返回值
key 的列表娇跟。
# 實例
redis 127.0.0.1:6379> COMMAND GETKEYS MSET a b c d e f
1) "a"
2) "c"
3) "e"
-
12 Time
Redis Time 命令用于返回當前服務器時間
# 語法
redis 127.0.0.1:6379> TIME
# 返回值
一個包含兩個字符串的列表: 第一個字符串是當前時間(以 UNIX 時間戳格式表示),而第二個字符串是當前這一秒鐘已經(jīng)逝去的微秒數(shù)
# 實例
127.0.0.1:6379> TIME
1) "1510580904"
2) "337524"
-
13 Command Info
Redis Command Info 命令用于獲取 redis 命令的描述信息太颤。
# 語法
redis 127.0.0.1:6379> COMMAND INFO command-name [command-name ...]
# 返回值
命令描述信息的嵌套列表苞俘。
# 實例
127.0.0.1:6379> COMMAND INFO get set eval
1) 1) "get"
2) (integer) 2
3) 1) readonly
2) fast
4) (integer) 1
5) (integer) 1
6) (integer) 1
2) 1) "set"
2) (integer) -3
3) 1) write
2) denyoom
4) (integer) 1
5) (integer) 1
6) (integer) 1
3) 1) "eval"
2) (integer) -3
3) 1) noscript
2) movablekeys
4) (integer) 0
5) (integer) 0
6) (integer) 0
-
14 Config Get
Redis Config Get 命令用于獲取 redis 服務的配置參數(shù)。
在 Redis 2.4 版本中龄章, 有部分參數(shù)沒有辦法用 CONFIG GET 訪問吃谣,但是在最新的 Redis 2.6 版本中,所有配置參數(shù)都已經(jīng)可以用 CONFIG GET 訪問了做裙。
# 語法
redis 127.0.0.1:6379> CONFIG GET parameter
# 返回值
給定配置參數(shù)的值岗憋。
# 實例
127.0.0.1:6379> config get *max-*-entries*
1) "hash-max-ziplist-entries"
2) "512"
3) "set-max-intset-entries"
4) "512"
5) "zset-max-ziplist-entries"
6) "128"
-
15 Config rewrite
Redis Config rewrite 命令對啟動 Redis 服務器時所指定的 redis.conf 配置文件進行改寫。
CONFIG SET 命令可以對服務器的當前配置進行修改锚贱, 而修改后的配置可能和 redis.conf 文件中所描述的配置不一樣仔戈, CONFIG REWRITE 的作用就是通過盡可能少的修改, 將服務器當前所使用的配置記錄到 redis.conf 文件中拧廊。
# 語法
redis 127.0.0.1:6379> CONFIG REWRITE parameter
# 返回值
一個狀態(tài)值:如果配置重寫成功則返回 OK 监徘,失敗則返回一個錯誤。
# 實例
以下是執(zhí)行 CONFIG REWRITE 前卦绣, 被載入到 Redis 服務器的 redis.conf 文件中關于 appendonly 選項的設置:
# ... 其他選項
appendonly no
# ... 其他選項
在執(zhí)行以下命令之后:
127.0.0.1:6379> CONFIG GET appendonly # appendonly 處于關閉狀態(tài)
1) "appendonly"
2) "no"
127.0.0.1:6379> CONFIG SET appendonly yes # 打開 appendonly
OK
127.0.0.1:6379> CONFIG GET appendonly
1) "appendonly"
2) "yes"
127.0.0.1:6379> CONFIG REWRITE # 將 appendonly 的修改寫入到 redis.conf 中
OK
重寫后的 redis.conf 文件中的 appendonly 選項將被改寫:
# ... 其他選項
appendonly yes
# ... 其他選項
-
16 Config Set
Redis Config Set 命令可以動態(tài)地調(diào)整 Redis 服務器的配置(configuration)而無須重啟耐量。
你可以使用它修改配置參數(shù),或者改變 Redis 的持久化(Persistence)方式滤港。
# 語法
redis 127.0.0.1:6379> CONFIG Set parameter value
# 返回值
當設置成功時返回 OK 廊蜒,否則返回一個錯誤趴拧。
# 實例
127.0.0.1:6379> CONFIG GET slowlog-max-len
1) "slowlog-max-len"
2) "128"
127.0.0.1:6379> CONFIG SET slowlog-max-len 10086
OK
127.0.0.1:6379> CONFIG GET slowlog-max-len
1) "slowlog-max-len"
2) "10086"
-
17 Dbsize
Redis Dbsize 命令用于返回當前數(shù)據(jù)庫的 key 的數(shù)量。
# 語法
redis 127.0.0.1:6379> DBSIZE
# 返回值
當前數(shù)據(jù)庫的 key 的數(shù)量山叮。
# 實例
127.0.0.1:6379> DBSIZE
(integer) 0
127.0.0.1:6379> SET new_key "hello_moto" # 增加一個 key 試試
OK
127.0.0.1:6379> DBSIZE
(integer) 1
-
18 Config Resetstat
Redis Config Resetstat 命令用于重置 INFO 命令中的某些統(tǒng)計數(shù)據(jù)著榴,包括:
Keyspace hits (鍵空間命中次數(shù))
Keyspace misses (鍵空間不命中次數(shù))
Number of commands processed (執(zhí)行命令的次數(shù))
Number of connections received (連接服務器的次數(shù))
Number of expired keys (過期key的數(shù)量)
Number of rejected connections (被拒絕的連接數(shù)量)
Latest fork(2) time(最后執(zhí)行 fork(2) 的時間)
The aof_delayed_fsync counter(aof_delayed_fsync 計數(shù)器的值)
# 語法
redis 127.0.0.1:6379> CONFIG RESETSTAT
# 返回值
總是返回 OK 。
# 實例
127.0.0.1:6379> INFO
# Server
redis_version:3.2.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:4d2050541c69b013
redis_mode:standalone
os:Linux 2.6.32-573.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.4.7
process_id:2330
run_id:955613d3ad935f3dee07156fab4ec98a2f1d40a5
tcp_port:6379
uptime_in_seconds:15816
uptime_in_days:0
hz:10
lru_clock:633328
executable:/home/gp6/redis/redis-3.2.6/src/./redis-server
config_file:/home/gp6/redis/myRedis/redis.conf
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:822256
used_memory_human:802.98K
used_memory_rss:7868416
used_memory_rss_human:7.50M
used_memory_peak:822688
used_memory_peak_human:803.41K
total_system_memory:1967984640
total_system_memory_human:1.83G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:9.57
mem_allocator:jemalloc-4.0.3
# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1510582644
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
aof_enabled:1
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_current_size:137
aof_base_size:71
aof_pending_rewrite:0
aof_buffer_length:0
aof_rewrite_buffer_length:0
aof_pending_bio_fsync:0
aof_delayed_fsync:0
# Stats
total_connections_received:2
total_commands_processed:39
instantaneous_ops_per_sec:0
total_net_input_bytes:1302
total_net_output_bytes:11790594
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:62033
migrate_cached_sockets:0
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
# CPU
used_cpu_sys:27.51
used_cpu_user:66.81
used_cpu_sys_children:0.62
used_cpu_user_children:0.00
# Cluster
cluster_enabled:0
# Keyspace
db0:keys=1,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
#執(zhí)行重置命令
127.0.0.1:6379> CONFIG RESETSTAT
OK
#重置后查看 INFO 命令輸出信息
127.0.0.1:6379> INFO
# Server
redis_version:3.2.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:4d2050541c69b013
redis_mode:standalone
os:Linux 2.6.32-573.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.4.7
process_id:2330
run_id:955613d3ad935f3dee07156fab4ec98a2f1d40a5
tcp_port:6379
uptime_in_seconds:15994
uptime_in_days:0
hz:10
lru_clock:633506
executable:/home/gp6/redis/redis-3.2.6/src/./redis-server
config_file:/home/gp6/redis/myRedis/redis.conf
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:822256
used_memory_human:802.98K
used_memory_rss:7868416
used_memory_rss_human:7.50M
used_memory_peak:822688
used_memory_peak_human:803.41K
total_system_memory:1967984640
total_system_memory_human:1.83G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:9.57
mem_allocator:jemalloc-4.0.3
# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1510582644
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
aof_enabled:1
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_current_size:137
aof_base_size:71
aof_pending_rewrite:0
aof_buffer_length:0
aof_rewrite_buffer_length:0
aof_pending_bio_fsync:0
aof_delayed_fsync:0
# Stats
total_connections_received:0
total_commands_processed:1
instantaneous_ops_per_sec:0
total_net_input_bytes:14
total_net_output_bytes:5
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
migrate_cached_sockets:0
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
# CPU
used_cpu_sys:27.73
used_cpu_user:67.70
used_cpu_sys_children:0.62
used_cpu_user_children:0.00
# Cluster
cluster_enabled:0
# Keyspace
db0:keys=1,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
-
19 Debug Object
Redis Debug Object 命令是一個調(diào)試命令问麸,它不應被客戶端所使用。
# 語法
redis 127.0.0.1:6379> DEBUG OBJECT key
# 返回值
當 key 存在時哮笆,返回有關信息。 當 key 不存在時项阴,返回一個錯誤。
# 實例
127.0.0.1:6379> DEBUG OBJECT new_key
Value at:0x7f7a08e1b940 refcount:1 encoding:embstr serializedlength:11 lru:633204 lru_seconds_idle:664
127.0.0.1:6379> DEBUG OBJECT mykey
(error) ERR no such key
-
20 Debug Segfault
Redis Debug Segfault 命令執(zhí)行一個非法的內(nèi)存訪問從而讓 Redis 崩潰薯演,僅在開發(fā)時用于 BUG 調(diào)試。
# 語法
redis 127.0.0.1:6379> DEBUG SEGFAULT
# 返回值
無
# 實例
127.0.0.1:6379> DEBUG SEGFAULT
Could not connect to Redis at 127.0.0.1:6379: Connection refused
(1.13s)
-
21 Flushall
Redis Flushall 命令用于清空整個 Redis 服務器的數(shù)據(jù)(刪除所有數(shù)據(jù)庫的所有 key )。
# 語法
redis 127.0.0.1:6379> FLUSHALL
# 返回值
總是返回 OK
# 實例
127.0.0.1:6379> DBSIZE # 0 號數(shù)據(jù)庫的 key 數(shù)量
(integer) 9
127.0.0.1:6379> SELECT 1 # 切換到 1 號數(shù)據(jù)庫
OK
127.0.0.1:6379> DBSIZE # 1 號數(shù)據(jù)庫的 key 數(shù)量
(integer) 6
127.0.0.1:6379> flushall # 清空所有數(shù)據(jù)庫的所有 key
OK
127.0.0.1:6379> DBSIZE # 不但 1 號數(shù)據(jù)庫被清空了
(integer) 0
127.0.0.1:6379> SELECT 0 # 0 號數(shù)據(jù)庫(以及其他所有數(shù)據(jù)庫)也一樣
OK
127.0.0.1:6379> DBSIZE
(integer) 0
-
22 Flushdb
Redis Flushdb 命令用于清空當前數(shù)據(jù)庫中的所有 key狮辽。
# 語法
redis 127.0.0.1:6379> FLUSHDB
# 返回值
總是返回 OK 椰苟。
# 實例
127.0.0.1:6379> DBSIZE # 清空前的 key 數(shù)量
(integer) 4
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> DBSIZE # 清空后的 key 數(shù)量
(integer) 0
-
23 Info
server : 一般 Redis 服務器信息,包含以下域:
redis_version : Redis 服務器版本
redis_git_sha1 : Git SHA1
redis_git_dirty : Git dirty flag
os : Redis 服務器的宿主操作系統(tǒng)
arch_bits : 架構(32 或 64 位)
multiplexing_api : Redis 所使用的事件處理機制
gcc_version : 編譯 Redis 時所使用的 GCC 版本
process_id : 服務器進程的 PID
run_id : Redis 服務器的隨機標識符(用于 Sentinel 和集群)
tcp_port : TCP/IP 監(jiān)聽端口
uptime_in_seconds : 自 Redis 服務器啟動以來,經(jīng)過的秒數(shù)
uptime_in_days : 自 Redis 服務器啟動以來,經(jīng)過的天數(shù)
lru_clock : 以分鐘為單位進行自增的時鐘疲陕,用于 LRU 管理
clients : 已連接客戶端信息,包含以下域:
connected_clients : 已連接客戶端的數(shù)量(不包括通過從屬服務器連接的客戶端)
client_longest_output_list : 當前連接的客戶端當中蹄殃,最長的輸出列表
client_longest_input_buf : 當前連接的客戶端當中携茂,最大輸入緩存
blocked_clients : 正在等待阻塞命令(BLPOP、BRPOP诅岩、BRPOPLPUSH)的客戶端的數(shù)量
memory : 內(nèi)存信息讳苦,包含以下域:
used_memory : 由 Redis 分配器分配的內(nèi)存總量,以字節(jié)(byte)為單位
used_memory_human : 以人類可讀的格式返回 Redis 分配的內(nèi)存總量
used_memory_rss : 從操作系統(tǒng)的角度吩谦,返回 Redis 已分配的內(nèi)存總量(俗稱常駐集大性铡)。這個值和 top 式廷、 ps 等命令的輸出一致咐扭。
used_memory_peak : Redis 的內(nèi)存消耗峰值(以字節(jié)為單位)
used_memory_peak_human : 以人類可讀的格式返回 Redis 的內(nèi)存消耗峰值
used_memory_lua : Lua 引擎所使用的內(nèi)存大小(以字節(jié)為單位)
mem_fragmentation_ratio : used_memory_rss 和 used_memory 之間的比率
mem_allocator : 在編譯時指定的滑废, Redis 所使用的內(nèi)存分配器蝗肪。可以是 libc 蠕趁、 jemalloc 或者 tcmalloc 薛闪。
在理想情況下, used_memory_rss 的值應該只比 used_memory 稍微高一點兒俺陋。
當 rss > used 豁延,且兩者的值相差較大時怀各,表示存在(內(nèi)部或外部的)內(nèi)存碎片。
內(nèi)存碎片的比率可以通過 mem_fragmentation_ratio 的值看出术浪。
當 used > rss 時瓢对,表示 Redis 的部分內(nèi)存被操作系統(tǒng)換出到交換空間了,在這種情況下胰苏,操作可能會產(chǎn)生明顯的延遲硕蛹。
當 Redis 釋放內(nèi)存時,分配器可能會硕并,也可能不會法焰,將內(nèi)存返還給操作系統(tǒng)。
如果 Redis 釋放了內(nèi)存倔毙,卻沒有將內(nèi)存返還給操作系統(tǒng)埃仪,那么 used_memory 的值可能和操作系統(tǒng)顯示的 Redis 內(nèi)存占用并不一致。
查看 used_memory_peak 的值可以驗證這種情況是否發(fā)生陕赃。
persistence : RDB 和 AOF 的相關信息
stats : 一般統(tǒng)計信息
replication : 主/從復制信息
cpu : CPU 計算量統(tǒng)計信息
commandstats : Redis 命令統(tǒng)計信息
cluster : Redis 集群信息
keyspace : 數(shù)據(jù)庫相關的統(tǒng)計信息
# 語法
redis 127.0.0.1:6379> INFO [section]
# 返回值
字符串卵蛉,文本行的集合。
# 實例
127.0.0.1:6379> INFO
# Server
redis_version:3.2.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:4d2050541c69b013
redis_mode:standalone
os:Linux 2.6.32-573.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.4.7
process_id:4913
run_id:430a44294052a07f5c81c6e376c9038e482a5088
tcp_port:6379
uptime_in_seconds:480
uptime_in_days:0
hz:10
lru_clock:634699
executable:/home/gp6/redis/redis-3.2.6/src/./redis-server
config_file:/home/gp6/redis/myRedis/redis.conf
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:822656
used_memory_human:803.38K
used_memory_rss:7782400
used_memory_rss_human:7.42M
used_memory_peak:822656
used_memory_peak_human:803.38K
total_system_memory:1967984640
total_system_memory_human:1.83G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:9.46
mem_allocator:jemalloc-4.0.3
# Persistence
loading:0
rdb_changes_since_last_save:2
rdb_bgsave_in_progress:0
rdb_last_save_time:1510583659
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
aof_enabled:1
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_current_size:137
aof_base_size:137
aof_pending_rewrite:0
aof_buffer_length:0
aof_rewrite_buffer_length:0
aof_pending_bio_fsync:0
aof_delayed_fsync:0
# Stats
total_connections_received:1
total_commands_processed:2
instantaneous_ops_per_sec:0
total_net_input_bytes:47
total_net_output_bytes:5888263
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
migrate_cached_sockets:0
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
# CPU
used_cpu_sys:0.94
used_cpu_user:2.05
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
# Cluster
cluster_enabled:0
# Keyspace
db0:keys=1,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
-
24 Lastsave
Redis Lastsave 命令返回最近一次 Redis 成功將數(shù)據(jù)保存到磁盤上的時間么库,以 UNIX 時間戳格式表示傻丝。
# 語法
redis 127.0.0.1:6379> LASTSAVE
# 返回值
字符串,文本行的集合诉儒。
# 實例
127.0.0.1:6379> LASTSAVE
(integer) 1510583659
-
25 Monitor
Redis Monitor 命令用于實時打印出 Redis 服務器接收到的命令葡缰,調(diào)試用。
# 語法
redis 127.0.0.1:6379> MONITOR
# 返回值
總是返回 OK 忱反。
# 實例
127.0.0.1:6379> MONITOR
OK
#打開另一個客戶端,輸入命令
127.0.0.1:6379> keys *
1) "new_key"
#此時,原來的窗口出現(xiàn)輸入的命令
1510584488.966928 [0 127.0.0.1:44149] "COMMAND"
1510584494.538387 [0 127.0.0.1:44149] "keys" "*"
-
26 Role
Redis Role 命令查看主從實例所屬的角色泛释,角色有master, slave, sentinel。
# 語法
redis 127.0.0.1:6379> ROLE
# 返回值
返回一個數(shù)組:第一個參數(shù)是 master, slave, sentinel 三個中的一個
# 實例
127.0.0.1:6379> ROLE
1) "master"
2) (integer) 0
3) (empty list or set)
-
27 Save
Redis Save 命令執(zhí)行一個同步保存操作温算,將當前 Redis 實例的所有數(shù)據(jù)快照(snapshot)以 RDB 文件的形式保存到硬盤怜校。
# 語法
redis 127.0.0.1:6379> SAVE
# 返回值
保存成功時返回 OK 。米者。
# 實例
127.0.0.1:6379> SAVE
OK
-
28 Shutdown
Redis Shutdown 命令執(zhí)行以下操作:
停止所有客戶端
如果有至少一個保存點在等待韭畸,執(zhí)行 SAVE 命令
如果 AOF 選項被打開,更新 AOF 文件
關閉 redis 服務器(server)
# 語法
redis 127.0.0.1:6379> SHUTDOWN [NOSAVE] [SAVE]
# 返回值
執(zhí)行失敗時返回錯誤蔓搞。 執(zhí)行成功時不返回任何信息胰丁,服務器和客戶端的連接斷開,客戶端自動退出喂分。
# 實例
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> SHUTDOWN
not connected>
-
29 Slaveof
Redis Slaveof 命令可以將當前服務器轉(zhuǎn)變?yōu)橹付ǚ掌鞯膹膶俜掌?slave server)锦庸。
如果當前服務器已經(jīng)是某個主服務器(master server)的從屬服務器,那么執(zhí)行 SLAVEOF host port 將使當前服務器停止對舊主服務器的同步蒲祈,丟棄舊數(shù)據(jù)集甘萧,轉(zhuǎn)而開始對新主服務器進行同步萝嘁。
另外,對一個從屬服務器執(zhí)行命令 SLAVEOF NO ONE 將使得這個從屬服務器關閉復制功能扬卷,并從從屬服務器轉(zhuǎn)變回主服務器牙言,原來同步所得的數(shù)據(jù)集不會被丟棄。
利用『 SLAVEOF NO ONE 不會丟棄同步所得數(shù)據(jù)集』這個特性怪得,可以在主服務器失敗的時候咱枉,將從屬服務器用作新的主服務器,從而實現(xiàn)無間斷運行徒恋。
# 語法
redis 127.0.0.1:6379> SLAVEOF host port
# 返回值
總是返回 OK
# 實例
127.0.0.1:6379> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6379> SLAVEOF NO ONE
OK
-
30 slowlog
Redis slowlog 是 Redis 用來記錄查詢執(zhí)行時間的日志系統(tǒng)蚕断。
查詢執(zhí)行時間指的是不包括像客戶端響應(talking)、發(fā)送回復等 IO 操作入挣,而單單是執(zhí)行一個查詢命令所耗費的時間亿乳。
另外,slow log 保存在內(nèi)存里面径筏,讀寫速度非掣鸺伲快,因此你可以放心地使用它匠璧,不必擔心因為開啟 slow log 而損害 Redis 的速度桐款。
# 語法
redis 127.0.0.1:6379> SLOWLOG subcommand [argument]
# 返回值
取決于不同命令,返回不同的值夷恍。
# 實例
#查看日志信息
127.0.0.1:6379> slowlog get 2
(empty list or set)
#查看當前日志的數(shù)量:
127.0.0.1:6379> SLOWLOG LEN
(integer) 0
#使用命令 SLOWLOG RESET 可以清空 slow log 。
127.0.0.1:6379> SLOWLOG LEN
(integer) 14
127.0.0.1:6379> SLOWLOG RESET
OK
127.0.0.1:6379> SLOWLOG LEN
(integer) 0
-
31 Sync
Redis Sync 命令用于同步主從服務器媳维。
# 語法
redis 127.0.0.1:6379> SYNC
# 返回值
不明確酿雪。
# 實例
127.0.0.1:6379> SYNC
Entering slave output mode... (press Ctrl-C to quit)
SYNC with master, discarding 131 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"