redis入門(一)
redis入門(二)
redis入門(三)node
在redis入門(一)簡單介紹了redis的歷史和安裝部署,以及基本的數據結構和api,本節講解redis持久化、高可用、redis集羣和分佈式相關的知識。python
redis做爲內存數據庫,數據所有存儲到內存中。可是若出現斷電等緣由會形成數據丟失。redis內置了2種持久化的方式,分別爲RDB持久化和AOF持久化。linux
RDB持久化是把當前進程數據生成快照保存到硬盤的過程,換句話來講是將當前redis內存中的數據所有保存到硬盤。觸發RDB持久化過程分爲手動觸發和自動觸發。redis
手動觸發算法
能夠經過save
和bgsave
兩個命令手動執行保存RDB快照。
save
命令:會阻塞當前redis主進程,直到RDB保存完成,save命令已經棄用,不建議生產環境使用。
bgsave
命令:redis進程會執行fork操做建立進程執行保存RDB快照。只有在fork子進程纔會短期阻塞。建議你們都是用bgsave
命令保存RDB快照。目前redis內部全部RDB操做都使用bgsave
命令shell
127.0.0.1:26379> save OK 127.0.0.1:26379> bgsave Background saving started
自動觸發數據庫
save m n
。表示m秒內數據集存在n次修改時,自動觸發bgsave。bgsave
生成RDB文件併發給從節點。執行debug reload
命令從新加載redis時,也會觸發save操做。ubuntu
redis debug命令提供了幾個很是實用的debug功能windows
默認狀況下執行shutdown命令時,若是沒有開啓AOF持久化功能且設置過rdb自動保存策略則會自動執行bgsave。
父進程執行fork操做建立子進程,fork操做過程當中父進程會阻塞,經過info stats
命令查看latest_fork_usec選項,能夠獲取最近一個fork操做的耗時,單位爲微秒。
127.0.0.1:26379> info stats # Stats total_connections_received:1 ... latest_fork_usec:5391
bgsave
命令返回Background saving started
信息並再也不阻塞父進程,能夠繼續響應其餘命令。子進程建立RDB文件,根據父進程內存生成臨時快照文件,完成後對原有文件進行原子替換。執行lastsave
命令能夠獲取最後一次生成RDB的時間,對應info統計的rdb_last_save_time
選項。進程發送信號給父進程表示完成,父進程更新統計信息,具體見info Persistence
下的rdb_*相關選項。O
127.0.0.1:26379> lastsave (integer) 1572423635
節點名 | 說明 |
---|---|
save | m秒有n次修改自動保存 |
dbfilename | RDB保存文件名,會保存到dir配置的路徑種 |
經過
config set dbfilename
能夠動態修改RDB保存文件名,下次運行RDB保存時會保存到新的文件名中。
config set
命令動態修改redis根路徑和RDB文件路徑。AOF(appendonlyfile)持久化:以獨立日誌的方式記錄每次寫命令,重啓時再從新執行AOF文件中的命令達到恢復數據的目的。AOF保存的不是數據,而是每次執行的命令,所以AOF文件會比RDB文件大的多。
AOF緩衝區根據對應的策略向硬盤作緩衝區文件操做。
AOF有三種緩衝區文件同步策略
當Redis服務器重啓時,能夠加載AOF文件進行數據恢復。
appendfsync always
,命令寫入緩存後,調用系統fsync同步文件操做。appendfsync ecerysec
,命令寫入緩存後,調用系統write操做。一個專門的線程每秒調用一次fsync同步文件操做。appendfsync no
,命令寫入緩存後,不作fsync同步文件操做,同步操做由操做系統負責,一般同步週期最長30秒隨着命令不斷寫入AOF,文件會愈來愈大,爲了解決這個問題,Redis引入AOF重寫機制優化命令。AOF文件重寫是把Redis進程內的數據轉化爲寫命令同步到新AOF文件的過程。定時AOF重寫不但能夠減少硬盤文件佔用,同時能夠在redis重啓時更快的加載AOF文件。
AOF重寫會重寫如下內容,AOF重寫能夠刪除已經超時的數據,舊的AOF無效命令(先新增後刪除),多條寫命令合併爲一個(多條插入集合能夠合併爲一條插入命令)
手動觸發:直接調用bgrewriteaof
命令。
127.0.0.1:26379> bgrewriteaof Background append only file rewriting started
自動觸發:根據auto-aof-rewrite-min-size
和auto-aof-rewrite-percentage
參數肯定自動觸發時機。
aof-rewrite-incremental-fsync
控制,默認爲32MB,防止單次刷盤數據過多形成硬盤阻塞。info persistence
下的aof_*相關統計。Redis支持主從複製,可是當發生故障的時候必須人工進行故障轉移,人工故障轉移實際就不是服務高可用。
主從複製詳細流程能夠看Redis 主從複製 psync1 和 psync2 的區別
Redis Sentinel包含若干個Sentinel節點和Redis數據節點,每一個Sentinel節點會對Redis節點和其他Sentinel節點進行監控,當它發現節點不可達時,會對節點作下線標識。若是被標識的是主節點,它還會和其餘Sentinel節點進行「協商」,當大多數Sentinel節點都認爲主節點不可達時,它們會選舉出一個Sentinel節點來完成自動故障轉移的工做,同時會將這個變化實時通知給Redis應用方。整個過程徹底是自動的,不須要人工來介入,因此這套方案頗有效地解決了Redis的高可用問題。
哨兵僅僅時在主從複製之上作了額外的監控處理,所以實際架構並無發生改變。
Redis2.8版本的哨兵成爲Redis Sentinel 2,對初始Sentinel實現的重寫,使用更強大、更簡單的預測算法。Redis Sentinel 1是 Redis 2.6版本出廠的,已經棄用。
slaveof no one
命令,將其設置爲主節點。slaveof masterip masterport
從節點從主節點全量複製
redis4.0版本之後能夠避免主從切換的全量複製問題。
關於哨兵的服務搭建能夠查看個人另外一篇博客《Windows版本redis高可用方案探究》,介紹了在windows版本的哨兵搭建,linux下也是大同小異的。
配置名 | 配置說明 |
---|---|
slaveof | 主節點的ip和端口 |
requirepass | 當前節點的密碼 |
masterauth | 主節點的密碼 |
當主從設置密碼時,必需要設置爲同樣的,不然可能出現主從切換時,密碼發生變化致使從沒法鏈接上主。
一個完整哨兵配置以下
port 26379 daemonize yes logfile "26379.log" dir "/opt/soft/redis/data" sentinel myid 5511e27289c117b38f42d2b8edb1d5446a3edf68 sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds master 5000 sentinel failover-timeout master 10000 sentinel auth-pass mymaster test1 sentinel config-epoch mymaster 0 sentinel leader-epoch mymaster 0 #發現兩個slave節點 sentinel known-slave mymaster 127.0.0.1 6380 sentinel known-slave mymaster 127.0.0.1 6381 #發現兩個sentinel節點 sentinel known-sentinel mymaster 127.0.0.1 26380 282a70ff56c36ed56e8f7ee6ada741 24140d6f53 sentinel known-sentinel mymaster 127.0.0.1 26381 f714470d30a61a8e39ae031192f1fe ae7eb5b2be sentinel current-epoch 0
sentinel monitor <master-name> <ip> <port> <quorum>
同一個哨兵能夠監控多個主節點,只須要將不一樣主節點設置爲不一樣的別名便可。
sentinel myid ID
sentinel <option_name> <master_name> <option_value>
sentinel
開頭,後面根據一個配置名 而後是redis別名和配置值
ping
命令從而判斷Redis和其他哨兵系欸點是否可達,若超過了配置的時間沒有恢復,則認爲不可達,也被稱之爲主觀下線。 配置格式爲sentinel down-after-milliseconds <master-name> <times>
,times爲超時時間,單位爲毫秒sentinel parallel-syncs <master-name> <nums>
,nums爲並行同步的數量,配置爲1時,從節點則會輪詢同步。sentinel failover-timeout <master-name> <times>
,times爲故障轉移失敗重試的時間間隔,單位爲毫秒。notification-script:當發生故障轉移期間,當一些警告級別的Sentinel事件發生時(例如-sdown:客觀下線和、-odown:主觀下線),會觸發配置路徑的腳本,並轉遞事件參數,能夠經過腳本經過右鍵、短信或其餘方式進行通知預警。配置格式爲sentinel notification-script <master-name> <script-path>
,script-path爲腳本路徑。
客觀下線:哨兵每隔1秒對主節點、從節點和其餘哨兵節點發送
ping
命令作心跳檢測,當超過down-after-milliseconds
未響應,則認爲節點不可達,即爲主觀下線。
主觀下線:當哨兵監控的主節點主觀下線時,哨兵節點會經過經過 sentinel is-master-down-by-addr
命令向其餘哨兵節點確認主節點是否下線。當有quorum
個哨兵認爲主節點不可達(主觀下線)時,則認爲主節點客觀下線(大部分哨兵都贊成主節點下線,即爲客觀),即當主節點客觀下線時哨兵領導者就會開始主節點的故障轉移。
* client-reconfig-script:當發生發生故障轉移發生主從切換時,能夠調用特定腳本執行指定的任務以通知新主節點的位置。sentinel client-reconfig-script <master-name> <script-path>
。
動態修改配置
哨兵也和redis節點相似,支持動態修改配置,經過sentinel set <master_name> <option_name> <option_value>
,修改當前哨兵的指定主節點的哨兵配置。
Redis Cluster是官方提供的Redis分佈式解決方案,在3.0版本正式推出。
Redis集羣經過分片的方式來保存數據庫中的鍵值對。通常有Hash分區和順序分區兩種方式分片,Redis使用Hash分區的方式將數據進行平均分佈。Redis內部分爲0~16383個虛擬槽,將虛擬槽分發給各個Redis節點。集羣上線前須要先將全部虛擬槽分發完成。
當一個Redis節點設置了虛擬槽時,它經過消息通知其餘的節點本身所處的虛擬槽,這樣全部的Redis節點都會更新並保存槽信息。
當客戶端向集羣某個Redis發送了一個命令時,該節點會計算要處理的數據鍵屬於哪一個槽,若屬於本身的槽則直接執行命令,若屬於其餘節點,則發送一個MOVED錯誤執行請求重定向,客戶端接受到MOVE重定向請求則會將命令發送到重定向後的節點執行。
當Redis集羣從新分片時,則將從新分配的虛擬槽的數據轉移到目標節點,這個轉移操做並不會影響新的命令請求。
當在分片期間執行命令時,可能出現部分數據被遷移到新的節點中,部分數據還在老的節點中未遷移,Redis集羣也可以從容的應對該種狀況,經過ASK錯誤執行ASK重定向將客戶端轉向正在遷移的目標節點,客戶端則到新的節點從新執行命令。
搭建由3個Redis節點組成的集羣。將data目錄設置爲redis根目錄,全部的RDB文件,AOP文件,日誌和配置都存放到data目錄中。
準備配置
準備三個配置文件,以redis-{port}.config
命名。
好比7379端口的redis節點配置以下,7380和7381配置相似。
port 7379 pidfile /var/run/redis_7379.pid logfile "log/redis-7379.txt" dbfilename dump-7379.rdb dir ./data/ appendfilename "appendonly-7379.aof" # 開啓集羣模式 cluster-enabled yes # 節點超時時間,單位毫秒 cluster-node-timeout 15000 # 集羣內部配置文件 cluster-config-file "nodes-7379.conf"
啓動節點
啓動三個redis節點
shell jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-server data/redis-7379.config jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-server data/redis-7380.config jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-server data/redis-7381.config
啓動完成因爲沒有集羣配置,默認會先建立集羣配置nodes-{port}.conf
jake@Jake-PC:~/tool/demo/redis-cluster/redis/data$ ls appendonly-7379.aof appendonly-7381.aof nodes-7380.conf redis-7379.config redis-7380.config redis-7381.config appendonly-7380.aof nodes-7379.conf nodes-7381.conf redis-7379.txt redis-7380.txt redis-7381.txt
啓動成功後會顯示Running in cluster mode
表示以集羣模式運行
節點握手
節點握手是指集羣節點經過Gossip協議彼此通訊,達到感知對方的過程。只須要在客戶端發起cluster meet {ip} {port}
命令。
127.0.0.1:7379> cluster meet 127.0.0.1 7380 127.0.0.1:7379> cluster meet 127.0.0.1 7381
握手完畢後能夠經過cluster nodes
查看當前的集羣節點
127.0.0.1:7379> cluster nodes ffff2fe734c1ae5be4f66d574484a89f8bd303f3 127.0.0.1:7379@17379 myself,master - 0 1572506163000 0 connected 1d3f7bd0d705ce2926ccc847b4323fcfbfe29f53 127.0.0.1:7381@17381 master - 0 1572506162658 2 connected 36f26b6c6a87202a4a29eba4daf7bf2ff47e2914 127.0.0.1:7380@17380 master - 0 1572506163689 1 connected
經過 cluster info
查看當前集羣狀態
127.0.0.1:7379> cluster info cluster_state:fail cluster_slots_assigned:0 cluster_slots_ok:0 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:3 cluster_size:0 cluster_current_epoch:2 cluster_my_epoch:0 cluster_stats_messages_ping_sent:84 cluster_stats_messages_pong_sent:88 cluster_stats_messages_meet_sent:2 cluster_stats_messages_sent:174 cluster_stats_messages_ping_received:88 cluster_stats_messages_pong_received:86 cluster_stats_messages_received:174
若此時讀寫數據會返回錯誤
127.0.0.1:7379> set hello redis-cluster (error) CLUSTERDOWN Hash slot not served 127.0.0.1:7379> get hello (error) CLUSTERDOWN Hash slot not served
因爲前面咱們提到了集羣搭建完成後必須先分配虛擬槽。cluster_ slots_ assigned
是已分配的虛擬槽,目前是0,所以咱們須要將虛擬槽進行分配。
分配虛擬槽
經過命令CLUSTER ADDSLOTS <slot> [slot ...]
分配虛擬槽,可是redis原生命令只能一個個分配或者一次分配多個,沒辦法直接分配一個區間的虛擬槽,所以須要本身修改redis源碼支持,或者能夠寫一個腳本批量分配。
批量分配槽
在linux上能夠經過shell 腳本,在windows上能夠經過powershell,且powershell腳本原生支持m..n生成m到n的一維數組,比較方便。
我我的對linux上的shell腳本不是很瞭解,查找了下資料也沒有像powershell或者python相似的初始化一維數組的語法。
目前已經發布的powershell core(powershell 6.0)支持跨平臺,下面咱們經過powershell腳本實現批量分配槽。再次以前我先要在linux上安裝powershell
我本機安裝的是Ubuntu 18.04,以超級用戶身份註冊 Microsoft 存儲庫一次。 註冊後,能夠經過sudo apt-get upgrade powershell
更新PowerShell。
# Download the Microsoft repository GPG keys wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb # Register the Microsoft repository GPG keys sudo dpkg -i packages-microsoft-prod.deb # Update the list of products sudo apt-get update # Enable the "universe" repositories sudo add-apt-repository universe # Install PowerShell sudo apt-get install -y powershell # Start PowerShell pwsh
下載並安裝完成後,經過pwsh
能夠啓用powershell,就能夠執行powershell腳本了。
咱們能夠經過redis-cli -p port CLUSTER ADDSLOTS <slot> [slot ...]
直接執行腳本設置虛擬槽。
在powershell中分配0到5的一維數組
PS C:\Users\Dm_ca> 0..5 0 1 2 3 4 5
經過redis-cli -p 7379 CLUSTER ADDSLOTS (0..5000)
分配0~5000的槽給7379端口
PS /home/jake/tool/demo/redis-cluster/redis> ./src/redis-cli -p 7379 CLUSTER ADDSLOTS (0..5000) OK
一樣分配其餘的從給其餘redis節點
PS /home/jake/tool/demo/redis-cluster/redis> ./src/redis-cli -p 7380 CLUSTER ADDSLOTS (5001..10000) OK PS /home/jake/tool/demo/redis-cluster/redis> ./src/redis-cli -p 7381 CLUSTER ADDSLOTS (10001..16383) OK
再次查看redis集羣狀態,能夠看到狀態已經從fail變爲ok,且cluster_slots_ok分配了16384個槽。
127.0.0.1:7379> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:3 cluster_size:3 cluster_current_epoch:2 cluster_my_epoch:0 cluster_stats_messages_ping_sent:3734 cluster_stats_messages_pong_sent:3677 cluster_stats_messages_meet_sent:2 cluster_stats_messages_sent:7413 cluster_stats_messages_ping_received:3677 cluster_stats_messages_pong_received:3736 cluster_stats_messages_received:7413
查看集羣節點狀況,能夠看到每一個節點後分配的槽的範圍
127.0.0.1:7379> cluster nodes ffff2fe734c1ae5be4f66d574484a89f8bd303f3 127.0.0.1:7379@17379 myself,master - 0 1572510104000 0 connected 0-5000 1d3f7bd0d705ce2926ccc847b4323fcfbfe29f53 127.0.0.1:7381@17381 master - 0 1572510106000 2 connected 10001-16383 36f26b6c6a87202a4a29eba4daf7bf2ff47e2914 127.0.0.1:7380@17380 master - 0 1572510106756 1 connected 5001-10000
搭建集羣主從
目前咱們分配了3個主節點造成另外一個redis集羣。可是若一個節點掛了,則整個集羣又會變爲不可用狀態。
將7379節點關閉,而後查看集羣狀態
127.0.0.1:7380> cluster nodes 36f26b6c6a87202a4a29eba4daf7bf2ff47e2914 127.0.0.1:7380@17380 myself,master - 0 1572510227000 1 connected 5001-10000 1d3f7bd0d705ce2926ccc847b4323fcfbfe29f53 127.0.0.1:7381@17381 master - 0 1572510230245 2 connected 10001-16383 ffff2fe734c1ae5be4f66d574484a89f8bd303f3 127.0.0.1:7379@17379 master,fail - 1572510210543 1572510209905 0 disconnected 0-5000 127.0.0.1:7380> cluster info cluster_state:fail cluster_slots_assigned:16384 cluster_slots_ok:11383 cluster_slots_pfail:0 cluster_slots_fail:5001 cluster_known_nodes:3 cluster_size:3 cluster_current_epoch:2 cluster_my_epoch:1 ...
所以咱們須要實現集羣高可用,爲每一個redis主節點加入從節點。
準備三個配置文件端口分別設置爲747九、7480和7481,分別對應737九、7380和7381的從庫。啓動三個redis節點
jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-server data/redis-7479.config jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-server data/redis-7480.config jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-server data/redis-7481.config jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-cli -p 7479 cluster meet 127.0.0.1 7379 OK jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-cli -p 7480 cluster meet 127.0.0.1 7380 OK jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-cli -p 7481 cluster meet 127.0.0.1 7379 OK
再次查看集羣節點
jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-cli -p 7481 cluster nodes 36f26b6c6a87202a4a29eba4daf7bf2ff47e2914 127.0.0.1:7380@17380 master - 0 1572514591000 1 connected 5001-10000 1d3f7bd0d705ce2926ccc847b4323fcfbfe29f53 127.0.0.1:7381@17381 master - 0 1572514593720 2 connected 10001-16383 44b31c845115b8e20ad07c50ef1fa035a8f77574 127.0.0.1:7479@17479 master - 0 1572514592000 3 connected 57dd93502af7600b074ed1a021f4f64fbb56c3f4 127.0.0.1:7481@17481 myself,master - 0 1572514591000 5 connected 0e0899d1c692fa3106073880d974acd93c426011 127.0.0.1:7480@17480 master - 0 1572514592713 4 connected ffff2fe734c1ae5be4f66d574484a89f8bd303f3 127.0.0.1:7379@17379 master - 0 1572514592000 0 connected 0-5000
經過cluster replicate {nodeId}
命令將當前節點設置爲集羣主節點的從節點。
jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-cli -p 7479 cluster replicate ffff2fe734c1ae5be4f66d574484a89f8bd303f3 OK jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-cli -p 7480 cluster replicate 36f26b6c6a87202a4a29eba4daf7bf2ff47e2914 OK jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-cli -p 7481 cluster replicate 1d3f7bd0d705ce2926ccc847b4323fcfbfe29f53 OK
再次查看節點狀態,能夠看到三個新增節點已經變爲從庫
jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-cli -p 7481 cluster nodes 36f26b6c6a87202a4a29eba4daf7bf2ff47e2914 127.0.0.1:7380@17380 master - 0 1572514841965 1 connected 5001-10000 1d3f7bd0d705ce2926ccc847b4323fcfbfe29f53 127.0.0.1:7381@17381 master - 0 1572514842981 2 connected 10001-16383 44b31c845115b8e20ad07c50ef1fa035a8f77574 127.0.0.1:7479@17479 slave ffff2fe734c1ae5be4f66d574484a89f8bd303f3 0 1572514842000 3 connected 57dd93502af7600b074ed1a021f4f64fbb56c3f4 127.0.0.1:7481@17481 myself,slave 1d3f7bd0d705ce2926ccc847b4323fcfbfe29f53 0 1572514841000 5 connected 0e0899d1c692fa3106073880d974acd93c426011 127.0.0.1:7480@17480 slave 36f26b6c6a87202a4a29eba4daf7bf2ff47e2914 0 1572514841000 4 connected ffff2fe734c1ae5be4f66d574484a89f8bd303f3 127.0.0.1:7379@17379 master - 0 1572514840000 0 connected 0-5000
把7381的主庫斷開,後7481自動變爲主。
jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-cli -p 7381 shutdown 127.0.0.1:7481> cluster nodes 36f26b6c6a87202a4a29eba4daf7bf2ff47e2914 127.0.0.1:7380@17380 master - 0 1572515223688 1 connected 5001-10000 1d3f7bd0d705ce2926ccc847b4323fcfbfe29f53 127.0.0.1:7381@17381 master,fail - 1572515116020 1572515114203 2 disconnected 44b31c845115b8e20ad07c50ef1fa035a8f77574 127.0.0.1:7479@17479 slave ffff2fe734c1ae5be4f66d574484a89f8bd303f3 0 1572515221634 3 connected 57dd93502af7600b074ed1a021f4f64fbb56c3f4 127.0.0.1:7481@17481 myself,master - 0 1572515220000 6 connected 10001-16383 0e0899d1c692fa3106073880d974acd93c426011 127.0.0.1:7480@17480 slave 36f26b6c6a87202a4a29eba4daf7bf2ff47e2914 0 1572515221000 4 connected ffff2fe734c1ae5be4f66d574484a89f8bd303f3 127.0.0.1:7379@17379 master - 0 1572515222656 0 connected 0-5000
最後將7381恢復,7381變爲7481的從庫
jake@Jake-PC:~/tool/demo/redis-cluster/redis$ src/redis-cli -p 7381 cluster nodes 57dd93502af7600b074ed1a021f4f64fbb56c3f4 127.0.0.1:7481@17481 master - 0 1572515324842 6 connected 10001-16383 36f26b6c6a87202a4a29eba4daf7bf2ff47e2914 127.0.0.1:7380@17380 master - 0 1572515325852 1 connected 5001-10000 44b31c845115b8e20ad07c50ef1fa035a8f77574 127.0.0.1:7479@17479 slave ffff2fe734c1ae5be4f66d574484a89f8bd303f3 0 1572515322000 3 connected 1d3f7bd0d705ce2926ccc847b4323fcfbfe29f53 127.0.0.1:7381@17381 myself,slave 57dd93502af7600b074ed1a021f4f64fbb56c3f4 0 1572515324000 2 connected 0e0899d1c692fa3106073880d974acd93c426011 127.0.0.1:7480@17480 slave 36f26b6c6a87202a4a29eba4daf7bf2ff47e2914 0 1572515324000 4 connected ffff2fe734c1ae5be4f66d574484a89f8bd303f3 127.0.0.1:7379@17379 master - 0 1572515323837 0 connected 0-5000
本文地址:http://www.javashuo.com/article/p-mmskrgis-ku.html 做者博客:傑哥很忙 歡迎轉載,請在明顯位置給出出處及連接