Redis操作手冊
1. 通用
1.1 進(jìn)程檢查
ps -ef|grep redis
1.2 如何連接
redis-cli -h <xx.xx.xx.xx> -p <6389> -a <passwd>
1.3 連接數(shù)檢查
總連接數(shù)
config get maxclients
當(dāng)前連接數(shù)
info clients
output:
10.200.161.98:6389> info clients
#Clients
<mark>connected_clients:1</mark>
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
當(dāng)前連接詳情
client list
output:
10.200.161.98:6389> client list
id=5 addr=10.200.161.99:35682 fd=23 name= age=359955 <mark>idle=0</mark> flags=S db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r <mark>cmd=replconf</mark>
id=188 addr=10.200.161.98:49684 fd=19 name= age=1670 <mark>idle=0</mark> flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r <mark>cmd=client</mark>
1.4 內(nèi)存檢查
info memory
output:
10.200.161.98:6389> info memory
#Memory
used_memory:2468392
used_memory_human:2.35M
used_memory_rss:4087808
<mark>used_memory_rss_human:3.90M</mark>
used_memory_peak:2509136
used_memory_peak_human:2.39M
total_system_memory:16594661376
total_system_memory_human:15.45G
used_memory_lua:37888
used_memory_lua_human:37.00K
<mark>maxmemory:0</mark>
maxmemory_human:0B
maxmemory_policy:noeviction
<mark>mem_fragmentation_ratio:1.66</mark>
mem_allocator:jemalloc-4.0.3
1.5 配置檢查
info server
output:
10.200.161.98:6389> info server
#Server
redis_version:3.2.12
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:c395fbbb4e05f728
redis_mode:cluster
os:Linux 3.0.101-63-default x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.3.4
process_id:24824
run_id:50053cc92fbbeb94f38cadbf2f3c5faa718dab56
tcp_port:6389
uptime_in_seconds:360273
uptime_in_days:4
hz:10
lru_clock:1538332
executable:/redis/data/redis-server
<mark>config_file:/redis/conf/6389.conf</mark>
1.6 慢查詢
slowlog get <n>
output:
10.200.161.98:6389> slowlog get 10
1) 1) (integer) 1
2) (integer) 1545041978
3) (integer) 10936
4) 1) "info"
2) "replication"
2) 1) (integer) 0
2) (integer) 1544776478
3) (integer) 10400
4) 1) "INFO"
1.7 鍵的個(gè)數(shù)
dbsize
禁止在生產(chǎn)上執(zhí)行keys *
1.8 啟停
redis-server /redis/conf/redis.conf
shutdown nosave/save 或者 kill -9
1.9 持久化
AOF
bgrewriteaof
RDB
bgsave
查看上次保存的時(shí)間
lastsave
2. redis sentinel
2.1 master狀態(tài)檢查
info sentinel #sentinel節(jié)點(diǎn)操作
2.2 slave狀態(tài)檢查
sentinel slaves mymaster
2.3 復(fù)制關(guān)系
info replication
output:
10.200.161.98:6389> info replication
#Replication
<mark>role:master</mark>
<mark>connected_slaves:1</mark>
slave0:ip=10.200.161.99,port=6390,state=online,offset=500725,lag=0
master_repl_offset:500739
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:500738
2.4 指定從節(jié)點(diǎn)
slaveof <master> <port>
slaveof no one 取消從節(jié)點(diǎn)角色
3. redis cluster
3.1 集群狀態(tài)檢查
cluster info
output:
10.200.161.98:6389> cluster info
<mark>cluster_state:ok</mark>
cluster_slots_assigned:16384
<mark>cluster_slots_ok:16384</mark>
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:10
cluster_size:5
cluster_current_epoch:60
cluster_my_epoch:55
cluster_stats_messages_sent:1069513
cluster_stats_messages_received:1061488
cluster nodes
output:
10.200.161.98:6389> cluster nodes
357439392aedc968347cdf83605d79602f02f66f 10.200.161.99:6389 <mark>master</mark> - 0 1545041781751 58 connected <mark>3277-6553</mark>
3a588b48ba2bbfa17b6d9f062d10ddc644139b96 10.200.161.98:6389 <mark>myself,master</mark> - 0 0 55 connected <mark>0-3276</mark>
1a93be3593b15f0dfc0e58bf39a08d34ecb2eb8a 10.200.161.99:6390 slave 3a588b48ba2bbfa17b6d9f062d10ddc644139b96 0 1545041783252 55 connected
78b6a6a6a585cb4294f05f5ef8f3ba2254e53cda 10.200.161.102:6390 <mark>master</mark> - 0 1545041786259 53 connected <mark>13107-16383</mark>
995939c5055b2dfe198950a6f70b7557888bd9c4 10.200.161.100:6390 slave 83fbf91616ab6580f2fbbb1a15abdb869a0724bb 0 1545041785257 59 connected
83fbf91616ab6580f2fbbb1a15abdb869a0724bb 10.200.161.101:6389 <mark>master</mark> - 0 1545041782251 59 connected <mark>9830-13106</mark>
35d5830da7af01a8948e876d50357c16b4aeb288 10.200.161.98:6390 slave 357439392aedc968347cdf83605d79602f02f66f 0 1545041780249 58 connected
2446d535229d968fd0d94f0927512167ff4bd021 10.200.161.100:6389 slave 2a0ddbc5fdb22927b6ace2edeea95d67dbba9861 0 1545041780750 60 connected
c47c2cd16bdce7b12d9b165889ba977119abeb8d 10.200.161.102:6389 slave 78b6a6a6a585cb4294f05f5ef8f3ba2254e53cda 0 1545041779247 53 connected
2a0ddbc5fdb22927b6ace2edeea95d67dbba9861 10.200.161.101:6390 <mark>master</mark> - 0 1545041784254 60 connected <mark>6554-9829</mark>
3.2 節(jié)點(diǎn)
cluster meet <ip> <port> :#將 ip 和 port 所指定的節(jié)點(diǎn)添加到集群當(dāng)中帮坚,讓它成為集群的一份子。
cluster forget <node_id> :#從集群中移除 node_id 指定的節(jié)點(diǎn)澈魄。
cluster replicate <master_node_id> :#將當(dāng)前從節(jié)點(diǎn)設(shè)置為 node_id 指定的master節(jié)點(diǎn)的slave節(jié)點(diǎn)弧蝇。只能針對slave節(jié)點(diǎn)操作蝶涩。
cluster failover:#將當(dāng)前從節(jié)點(diǎn)提升為主節(jié)點(diǎn)。只能針對slave節(jié)點(diǎn)操作。
cluster saveconfig :#將節(jié)點(diǎn)的配置文件保存到硬盤里面蹲坷。
3.3 槽
cluster addslots <slot> [slot ...] :#將一個(gè)或多個(gè)槽( slot)指派( assign)給當(dāng)前節(jié)點(diǎn)。
cluster delslots <slot> [slot ...] :#移除一個(gè)或多個(gè)槽對當(dāng)前節(jié)點(diǎn)的指派邑飒。
cluster flushslots :#移除指派給當(dāng)前節(jié)點(diǎn)的所有槽循签,讓當(dāng)前節(jié)點(diǎn)變成一個(gè)沒有指派任何槽的節(jié)點(diǎn)。
cluster setslot <slot> node <node_id> :#將槽 slot 指派給 node_id 指定的節(jié)點(diǎn)疙咸,如果槽已經(jīng)指派給另一個(gè)節(jié)點(diǎn)县匠,那么先讓另一個(gè)節(jié)點(diǎn)刪除該槽,然后再進(jìn)行指派撒轮。
cluster setslot <slot> migrating <node_id> :#將本節(jié)點(diǎn)的槽 slot 遷移到 node_id 指定的節(jié)點(diǎn)中乞旦。
cluster setslot <slot> importing <node_id> :#從 node_id 指定的節(jié)點(diǎn)中導(dǎo)入槽 slot 到本節(jié)點(diǎn)。
cluster setslot <slot> stable :#取消對槽 slot 的導(dǎo)入( import)或者遷移( migrate)题山。
3.4 鍵
cluster keyslot <key> :#計(jì)算鍵 key 應(yīng)該被放置在哪個(gè)槽上兰粉。
cluster countkeysinslot <slot> :#返回槽 slot 目前包含的鍵值對數(shù)量。
cluster getkeysinslot <slot> <count> :#返回 count 個(gè) slot 槽中的鍵 顶瞳。
3.5 trib 助手
redis@MINI-DBS-A-01:/home/redis$redis-trib.rb
Usage: redis-trib <command> <options> <arguments ...>
<mark>create</mark> host1:port1 ... hostN:portN
--replicas <arg>
check host:port
info host:port
fix host:port
--timeout <arg>
<mark>reshard</mark> host:port
--from <arg>
--to <arg>
--slots <arg>
--yes
--timeout <arg>
--pipeline <arg>
rebalance host:port
--weight <arg>
--auto-weights
--use-empty-masters
--timeout <arg>
--simulate
--pipeline <arg>
--threshold <arg>
add-node new_host:new_port existing_host:existing_port
--slave
--master-id <arg>
del-node host:port node_id
set-timeout host:port milliseconds
call host:port command arg arg .. arg
import host:port
--from <arg>
--copy
--replace
help (show this help)
For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster.