Redis搭建多台哨兵


 

  1. 搭建多台哨兵
  2. 完成spring管理多台哨兵
  3. 學習redis如何數據持久化如何管理內存
  4. Redis集群搭建
  5. 集群測試
  6. Spring管理集群

搭建多台哨兵

2.1 搭建步驟

2.1.1 修改6379哨兵配置

說明:該信息唯一標識哨兵,這個信息是哨兵啟動后,由哨兵自動寫入的

 

 

2.配置哨兵數

說明:如果由哨兵自動的選擇主從結構,則下邊的master會根據哨兵的選舉自動的變化. 2表示由多個哨兵 最終有2台決定推選結果. 一般的哨兵為奇數個.

 

 

2.1.2 構建6380哨兵

說明:配置多台哨兵時有2種方式.

  1. 直接復制已經配置好的哨兵配置文件,進行修改

 

 

a) 必須修改myid否則哨兵不起作用

b) 修改哨兵端口 26380

 

2.1.3 修改6381哨兵

說明:采用全新的配置文件進行哨兵的配置

  1. 關閉保護模式

說明:只有關閉保護模式,哨兵與哨兵之間才能相互通信

 

  1. 修改端口

 

  1. 配置主機 端口 推選數

 

 

  1. 修改推選時間

說明:修改推選時間為了測試方便.否則等待時間較長.一般采用默認的時間,無需修改.

 

說明:10秒沒有檢測到主機,則進行推選.

2.2 哨兵測試

2.2.1 多個哨兵啟動

說明:

當多個哨兵啟動后,哨兵與哨兵之間能夠形成通信.並且相互通知.

 

 

當主機宕機后,哨兵進入推選狀態.圖中表述推選的結果.

2.2.2 哨兵搭建注意事項

  1. 測試單台哨兵是否有效.

a) 檢測防火牆是否關閉

b) 遠程保護是否關閉

  1. 修改端口
  2. 修改Myid
  3. 在配置之前 首先將全部哨兵關閉.如果配置完成之后重啟
  4. 采用復制全新的哨兵文件單獨配(注意主機是誰)

 

2.3 哨兵Jedis入門案例

2.3.1 通過哨兵如何操作redis

知識回顧:

  1. 采用redis分片技術時,每個分片其實就是真實的redis節點.操作分片其實能直接進行redissetget操作
  2. 分片的缺點:不能實現高可用

  哨兵技術:

  1. 可以動態的實現主機的自動切換.
  2. 哨兵只負責主節點的檢測工作.不能寫哨兵和讀哨兵.響應的操作都應該在redis節點中進行.
  3. 當采用哨兵機制時,可以通過哨兵自動發現誰是master主機.當用戶通過哨兵進行set操作時,內部哨兵將set操作交給redis節點中的master進行執行.哨兵起到一個中轉作用.

2.3.2 哨兵jedis測試

@Test

public void test03(){

//2.定義哨兵set集合

Set<String> sets = new HashSet<String>();

 

//3.向集合中加入哨兵節點

sets.add(new HostAndPort("192.168.126.142",26379).toString());

sets.add(new HostAndPort("192.168.126.142",26380).toString());

sets.add(new HostAndPort("192.168.126.142",26381).toString());

//1.定義哨兵連接池   參數編輯哨兵名稱

JedisSentinelPool sentinelPool =

new JedisSentinelPool("mymaster", sets);

//4.插入數據

 Jedis jedis = sentinelPool.getResource();

 jedis.set("1709", "哨兵測試");

 //5輸出結果

 System.out.println(jedis.get("1709"));

}

 

2.4 Sping整合哨兵

2.4.1 編輯哨兵配置文件

說明:將哨兵的配置文件放入項目中spring文件夾下.

注意將由於分片的配置文件刪除或者修改名稱.

 

<!--定義連接池  -->

<bean id="jedisSentinelPool" class="redis.clients.jedis.JedisSentinelPool">

<constructor-arg index="0" value="${redis.sentinel.masterName}"/>

<constructor-arg index="1">

<set>

<value>${redis.sentinel.host1}</value>

<value>${redis.sentinel.host2}</value>

<value>${redis.sentinel.host3}</value>

</set>

</constructor-arg>

</bean>

 

 

 

 

2.4.2 編輯properties文件

 

2.4.3 properties交給spring管理

<bean id="propertyPlaceholder"

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<list>

<value>classpath:/property/jdbc.properties</value>

<!--添加redis的配置文件  -->

<value>classpath:/property/redis.properties</value>

</list>

</property>

</bean>

Redis中持久化技術

3.1 Redis默認持久化方式RDB

3.1.1 RDB說明:

說明:RBD模式是redis中默認采用的模式,該模式會在一定的時間范圍內進行redis實例的自動數據備份.(內存中的數據定時持久化到磁盤中),

1.redis節點因為斷電或者關機.這是內存釋放,數據丟失.

2.redis再次啟動時首先會根據配置文件查找當前節點的rdb文件,自動的讀取rdb文件中的內容.自動的實現數據恢復.

3.1.2 RDB的寫盤操作

說明: rdb文件中一般默認會15分鍾寫盤一次,該寫盤操作是自動的,redis當進行寫盤操作時,會自動的創建一個線程.該線程不與主線程沖突.(讀和寫都是通過主線程完成).

當該線程執行時用戶沒有感覺.如果想主動的進行寫盤操作則在客戶端執行save命令

 

命令:

  1. Save

a) 弊端:當主動執行save命令時,這時會對主線程造成阻塞.該命令一般使用

  1. Bgsave

a) 通過bgsave持久化數據時,產生的線程不會與主線程沖突,采用后台技術完成.不會產出阻塞,.但是不能保證馬上執行.

Background saving started

 

3.1.3 RDB文件的持久化策略

  1. pid存儲路徑:

 

 

  1. 默認的持久化策略

A.save 900 1

B.save 300 10

C.save 60 10000

 

說明:

  1. redis節點進行set操作時,900秒內執行一個set操作時,才自動備份.
  2. redis節點進行set操作時,300秒內執行10次時,進行自動數據備份.
  3. redis節點進行set操作時,60秒內,執行了10000次操作時進行數據備份.

3.1.4 RDB的優點

說明:redis中的默認的備份采用RDB的形式,該形式有定時備份的特定.其消耗的資源較少.

缺點:

如果對數據的完整性有特別的要求,則采用rdb方式可能會造成數據的丟失.

 

3.2 Redis持久化AOF

3.2.1 AOF說明

說明:

如果對於數據的完整性有特殊的要求,才使用AOF的方式進行.

該方式,在一定程度上不如rdb效率高.

3.2.2 AOF的持久化策略

說明:redis的默認持久化策略采用RDB形式,如果想使用AOF形式,需要進行額外的配置

 

說明:如果將appendonly 改為yes.redis的持久化策略發生改變.

則采用AOF的形式進行數據備份.

 

說明:

Everysec  每秒數據備份一次 效率相對於RDB接近效率

Always     只要執行set操作,redis就會備份,該操作的效率很低

No         將備份的策略交個操作系統完成(30分鍾備份一次) 一般很少使用

 

appendfsync everysec 默認采用每秒備份一次.

 

總結:

redis數據備份沒有做特殊的處理appendOnlyno,采用rdb.當改為yes,則啟動redis節點時,會自動的加載AOF持久化文件.如果采用AOF數據備份,一般采用每秒數據備份一次,.可以有效的保存當先的節點信息.

 

3.3 Redis的內存策略

3.3.1 Redis的內存策略

說明:redis是基於內存的,但是內存資源相對比較珍貴.如果redis中的數據很多,內存占滿,這時如果set一條新的數據,則沒有地方存儲該數據.

  策略:

Redis在內存中有自由的優化策略,保證數據不會出現存不下的現象.

 

 

說明:

如果想改變內存的大小,只需將注釋去掉,設定最大內存.

maxmemory 10M   表示內存10兆

 

3.3.2 內存優化的方式

說明:redis內存中有lru算法,能夠查找最近不使用數據

  1. volatile-lru

a) 說明:在已經設定了超時時間的數據中,查找最近不用的數據刪除.

  1. allkeys-lru

a) 說明:在所有的key,查找最近不常使用的數據進行刪除

  1. volatile-random

a) 在設定了超時時間的key中 隨機刪除數據

  1. allkeys-random

a) 在所有的key,隨機的刪除數據

  1. volatile-ttl

a) 在所有設定了超時時間的key,找將要超時的數據進行刪除.

  1. 算法中將按照超時時間進行排序,將馬上要超時的數據提前刪除
  2. noeviction

說明:redis默認使用的就是最后一種.redis將內存的維護交給操作系統.redis的內存需要更新時.由操作系統從數據庫中隨意選取5個數據進行刪除.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Redis集群

 

建目錄

 

 

[root@localhost redis-3.2.8]# mkdir 7000 7001 7002 7003 7004 7005 7006 7007 7008

 

 

 

復制配置文件

 

[root@localhost redis-3.2.8]# cp redis.conf 7000/redis-7000.conf

 

3.修改配置文件參數(redis-7000.conf)

1.注銷綁定的端口號

 

2.關閉保護模式

 

 

  1. 修改端口號

 

 

  1. 后台運行開啟

 

 

  1. 通過絕對路徑指明文件存放的位置(指定pid文件的路徑)

 

 

  1. 如果不修改dump文件那么每次的日志文件都是公用的,修改dump日志文件路徑

 

 

  1. 啟用二進制日志

 

 

 

 

 

 

 

 

  1. 啟用集群

 

9.將端口號改為7000,打開集群超時時間

 

  1. 將主從掛載刪除獲取是注釋,如果掛載了主從關系 需要刪除

 

 

 

執行以下命令可以先將文件中的全部7000修改為7001

:%s/7000/7001/g

11.將配置文件分別拷貝到7001-7008中,需要修改端口號即可

 

12.分別將7002-7008的配置文件進行修改

分區

 

 

 

 

 

 

 

 

 

 

 

 

 

 

復制配置文件(將redis-7000.conf到其他文件夾

[root@localhost redis-3.2.8]# cd 7000

[root@localhost 7000]# cp redis-7000.conf ../7001/redis-7001.conf

[root@localhost 7000]# cp redis-7000.conf ../7002/redis-7002.conf

[root@localhost 7000]#  cp redis-7000.conf ../7003/redis-7003.conf

[root@localhost 7000]# cp redis-7000.conf ../7004/redis-7004.conf

[root@localhost 7000]#  cp redis-7000.conf ../7005/redis-7005.conf

[root@localhost 7000]# cp redis-7000.conf ../7006/redis-7006.conf

[root@localhost 7000]# cp redis-7000.conf ../7007/redis-7007.conf

[root@localhost 7000]# cp redis-7000.conf ../7008/redis-7008.conf

[root@localhost 7000]# cd ../

[root@localhost redis-3.2.8]# cd 7001

 [root@localhost 7001]# vim redis-7001.conf

 

修改配置文件中的字段70007001

  :%s/7000/7001/g

[root@localhost 7001]# cd ../7002

[root@localhost 7002]# vim redis-7002.conf

[root@localhost 7002]# cd ../7003

[root@localhost 7003]# vim redis-7003.conf

  :%s/7000/7002/g

[root@localhost 7003]# cd ../7004

[root@localhost 7004]# vim redis-7004.conf

  :%s/7000/7004/g

[root@localhost 7004]# cd ../7005

[root@localhost 7005]# vim redis

[root@localhost 7005]# vim redis-7005.conf

  :%s/7000/7005/g

[root@localhost 7005]# cd ../7006

[root@localhost 7006]# vim redis-7006.conf

  :%s/7000/7006/g

[root@localhost 7006]# cd ../7007

[root@localhost 7007]# vim redis-7007.conf

  :%s/7000/7007/g

[root@localhost 7007]# cd ../7008

[root@localhost 7008]# vim redis-7008.conf

    :%s/7000/7008/g

[root@localhost 7008]# pwd

/usr/local/src/redis-3.2.8/7008

 

 

建立start.sh

[root@localhost redis-3.2.8]# touch start.sh

 

配置start.sh

 

[root@localhost redis-3.2.8]# vim start.sh

#!/bin/sh

redis-server 7000/redis-7000.conf &

redis-server 7001/redis-7001.conf &

redis-server 7002/redis-7002.conf &

redis-server 7003/redis-7003.conf &

redis-server 7004/redis-7004.conf &

redis-server 7005/redis-7005.conf &

redis-server 7006/redis-7006.conf &

redis-server 7007/redis-7007.conf &

redis-server 7008/redis-7008.conf &

 

啟動start.sh

 

[root@localhost redis-3.2.8]# sh start.sh

[root@localhost redis-3.2.8]# ps -ef | grep redis

root      5324     1  0 02:44 ?        00:00:00 redis-server *:7008 [cluster]    

root      5325     1  0 02:44 ?        00:00:00 redis-server *:7007 [cluster]    

root      5326     1  0 02:44 ?        00:00:00 redis-server *:7004 [cluster]    

root      5327     1  0 02:44 ?        00:00:00 redis-server *:7000 [cluster]    

root      5328     1  0 02:44 ?        00:00:00 redis-server *:7003 [cluster]    

root      5329     1  0 02:44 ?        00:00:00 redis-server *:7002 [cluster]    

root      5330     1  0 02:44 ?        00:00:00 redis-server *:7005 [cluster]    

root      5331     1  0 02:44 ?        00:00:00 redis-server *:7001 [cluster]    

root      5332     1  0 02:44 ?        00:00:00 redis-server *:7006 [cluster]    

root      5395  5288  0 02:52 pts/4    00:00:00 grep redis

 

關閉防火牆

[root@localhost redis-3.2.8]# service iptables stop

[root@localhost redis-3.2.8]# redis-cli -p 7008

127.0.0.1:7008> info replication

# 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

127.0.0.1:7008> exit

命令執行配置12從結構

./src/redis-trib.rb create --replicas 2 192.168.161.138:7000 192.168.161.138:7001 192.168.161.138:7002 192.168.161.138:7003 192.168.161.138:7004 192.168.161.138:7005 192.168.161.138:7006 192.168.161.138:7007 192.168.161.138:7008

 

回車

[root@localhost redis-3.2.8]# ./src/redis-trib.rb create --replicas 2 192.168.161.138:7000 192.168.161.138:7001

>>> Creating cluster

*** ERROR: Invalid configuration for cluster creation.

*** Redis Cluster requires at least 3 master nodes.

*** This is not possible with 2 nodes and 2 replicas per node.

*** At least 9 nodes are required.

[root@localhost redis-3.2.8]#

[root@localhost redis-3.2.8]# 192.168.161.138:7002 192.168.161.138:7003 192.168.161.138:7004 192.168.161.138:7005

-bash: 192.168.161.138:7002: command not found

[root@localhost redis-3.2.8]#

[root@localhost redis-3.2.8]# 192.168.161.138:7006 192.168.161.138:7007 192.168.161.138:7008;

-bash: 192.168.161.138:7006: command not found

[root@localhost redis-3.2.8]# ./src/redis-trib.rb create --replicas 2 192.168.161.138:7000 192.168.161.138:7001 192.168.161.138:7002 192.168.161.138:7003 192.168.161.138:7004 192.168.161.138:7005 192.168.161.138:7006 192.168.161.138:7007 192.168.161.138:7008;

>>> Creating cluster

>>> Performing hash slots allocation on 9 nodes...

Using 3 masters:

192.168.161.138:7000

192.168.161.138:7001

192.168.161.138:7002

Adding replica 192.168.161.138:7003 to 192.168.161.138:7000

Adding replica 192.168.161.138:7004 to 192.168.161.138:7000

Adding replica 192.168.161.138:7005 to 192.168.161.138:7001

Adding replica 192.168.161.138:7006 to 192.168.161.138:7001

Adding replica 192.168.161.138:7007 to 192.168.161.138:7002

Adding replica 192.168.161.138:7008 to 192.168.161.138:7002

表示掛載成功

M表示主節點 S表示從節點信息

 

 

M: 5ca606ca99750ae6088eceb068c88b62cfae8d4b 192.168.161.138:7000

   slots:0-5460 (5461 slots) master

M: 0ea8af6dc724408e19e89e3d2933335b28715237 192.168.161.138:7001

   slots:5461-10922 (5462 slots) master

M: cfd38fb1d654f0ef099e54ad81bb6a08e8eb1dca 192.168.161.138:7002

   slots:10923-16383 (5461 slots) master

S: 6a8c898758f8b14a6cda477b36f02879e67cc975 192.168.161.138:7003

   replicates 5ca606ca99750ae6088eceb068c88b62cfae8d4b

S: 12d455b893fa251118fa16ccf37817b5ccd5746d 192.168.161.138:7004

   replicates 5ca606ca99750ae6088eceb068c88b62cfae8d4b

S: 7faeed2a9f6f377b852e1079b0ad79a219e479e6 192.168.161.138:7005

   replicates 0ea8af6dc724408e19e89e3d2933335b28715237

S: e6806de7d5fce3f3dcfbfe661370c05d6ce94a5f 192.168.161.138:7006

   replicates 0ea8af6dc724408e19e89e3d2933335b28715237

S: 81384ae1bbab3e9ebe33509150c870820da3bc47 192.168.161.138:7007

   replicates cfd38fb1d654f0ef099e54ad81bb6a08e8eb1dca

S: d607ca8480fb4889f40a7ed7f8bcaca25253a903 192.168.161.138:7008

   replicates cfd38fb1d654f0ef099e54ad81bb6a08e8eb1dca

Can I set the above configuration? (type 'yes' to accept): yes

表示是否確定掛載:輸入yes否則會報錯

 

>>> Nodes configuration updated

>>> Assign a different config epoch to each node

>>> Sending CLUSTER MEET messages to join the cluster

Waiting for the cluster to join......

>>> Performing Cluster Check (using node 192.168.161.138:7000)

M: 5ca606ca99750ae6088eceb068c88b62cfae8d4b 192.168.161.138:7000

   slots:0-5460 (5461 slots) master

   2 additional replica(s)

S: 81384ae1bbab3e9ebe33509150c870820da3bc47 192.168.161.138:7007

   slots: (0 slots) slave

   replicates cfd38fb1d654f0ef099e54ad81bb6a08e8eb1dca

S: 6a8c898758f8b14a6cda477b36f02879e67cc975 192.168.161.138:7003

   slots: (0 slots) slave

   replicates 5ca606ca99750ae6088eceb068c88b62cfae8d4b

S: 12d455b893fa251118fa16ccf37817b5ccd5746d 192.168.161.138:7004

   slots: (0 slots) slave

   replicates 5ca606ca99750ae6088eceb068c88b62cfae8d4b

S: e6806de7d5fce3f3dcfbfe661370c05d6ce94a5f 192.168.161.138:7006

   slots: (0 slots) slave

   replicates 0ea8af6dc724408e19e89e3d2933335b28715237

S: 7faeed2a9f6f377b852e1079b0ad79a219e479e6 192.168.161.138:7005

   slots: (0 slots) slave

   replicates 0ea8af6dc724408e19e89e3d2933335b28715237

S: d607ca8480fb4889f40a7ed7f8bcaca25253a903 192.168.161.138:7008

   slots: (0 slots) slave

   replicates cfd38fb1d654f0ef099e54ad81bb6a08e8eb1dca

M: 0ea8af6dc724408e19e89e3d2933335b28715237 192.168.161.138:7001

   slots:5461-10922 (5462 slots) master

   2 additional replica(s)

M: cfd38fb1d654f0ef099e54ad81bb6a08e8eb1dca 192.168.161.138:7002

   slots:10923-16383 (5461 slots) master

   2 additional replica(s)

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

[root@localhost redis-3.2.8]# ps -ef | grep redis

root      5324     1  0 02:44 ?        00:00:01 redis-server *:7008 [cluster]    

root      5325     1  0 02:44 ?        00:00:01 redis-server *:7007 [cluster]    

root      5326     1  0 02:44 ?        00:00:01 redis-server *:7004 [cluster]    

root      5327     1  0 02:44 ?        00:00:01 redis-server *:7000 [cluster]    

root      5328     1  0 02:44 ?        00:00:01 redis-server *:7003 [cluster]    

root      5329     1  0 02:44 ?        00:00:01 redis-server *:7002 [cluster]    

root      5330     1  0 02:44 ?        00:00:01 redis-server *:7005 [cluster]    

root      5331     1  0 02:44 ?        00:00:01 redis-server *:7001 [cluster]    

root      5332     1  0 02:44 ?        00:00:01 redis-server *:7006 [cluster]    

root      5445  5288  0 03:09 pts/4    00:00:00 grep redis

[root@localhost redis-3.2.8]# redis-cli -p 7000

127.0.0.1:7000> info replication

# Replication

role:master

connected_slaves:2

slave0:ip=192.168.161.138,port=7004,state=online,offset=169,lag=1

slave1:ip=192.168.161.138,port=7003,state=online,offset=169,lag=1

master_repl_offset:183

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:2

repl_backlog_histlen:182

 

進入7001

 

[root@localhost redis-3.2.8]# redis-cli -p 7001

127.0.0.1:7001> set name jack

OK

127.0.0.1:7001> get jack

(nil)

127.0.0.1:7001> get name

"jack"

127.0.0.1:7001> exit

進入7004

 

[root@localhost redis-3.2.8]# redis-cli -p 7004

127.0.0.1:7004> set kkk kkk

(error) MOVED 8583 192.168.161.138:7001

127.0.0.1:7004> get name

(error) MOVED 5798 192.168.161.138:7001

127.0.0.1:7004> get name

(error) MOVED 5798 192.168.161.138:7001

127.0.0.1:7004> exit

進入7001

 

[root@localhost redis-3.2.8]# redis-cli -p 7001

127.0.0.1:7001> get name

"jack"

127.0.0.1:7001> info replication

# Replication

role:master

connected_slaves:2

slave0:ip=192.168.161.138,port=7005,state=online,offset=771,lag=1

slave1:ip=192.168.161.138,port=7006,state=online,offset=771,lag=1

master_repl_offset:771

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:2

repl_backlog_histlen:770

127.0.0.1:7001> cluster nodes

d607ca8480fb4889f40a7ed7f8bcaca25253a903 192.168.161.138:7008 slave cfd38fb1d654f0ef099e54ad81bb6a08e8eb1dca 0 1517224647739 9 connected

cfd38fb1d654f0ef099e54ad81bb6a08e8eb1dca 192.168.161.138:7002 master - 0 1517224645722 3 connected 10923-16383

7faeed2a9f6f377b852e1079b0ad79a219e479e6 192.168.161.138:7005 slave 0ea8af6dc724408e19e89e3d2933335b28715237 0 1517224645722 6 connected

81384ae1bbab3e9ebe33509150c870820da3bc47 192.168.161.138:7007 slave cfd38fb1d654f0ef099e54ad81bb6a08e8eb1dca 0 1517224646731 8 connected

12d455b893fa251118fa16ccf37817b5ccd5746d 192.168.161.138:7004 slave 5ca606ca99750ae6088eceb068c88b62cfae8d4b 0 1517224646731 5 connected

5ca606ca99750ae6088eceb068c88b62cfae8d4b 192.168.161.138:7000 master - 0 1517224645722 1 connected 0-5460

6a8c898758f8b14a6cda477b36f02879e67cc975 192.168.161.138:7003 slave 5ca606ca99750ae6088eceb068c88b62cfae8d4b 0 1517224644716 4 connected

0ea8af6dc724408e19e89e3d2933335b28715237 192.168.161.138:7001 myself,master - 0 0 2 connected 5461-10922

e6806de7d5fce3f3dcfbfe661370c05d6ce94a5f 192.168.161.138:7006 slave 0ea8af6dc724408e19e89e3d2933335b28715237 0 1517224644716 7 connected

127.0.0.1:7001> info replication

# Replication

role:master

connected_slaves:2

slave0:ip=192.168.161.138,port=7005,state=online,offset=995,lag=0

slave1:ip=192.168.161.138,port=7006,state=online,offset=995,lag=0

master_repl_offset:995

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:2

repl_backlog_histlen:994

127.0.0.1:7001> exit

關閉7001

[root@localhost redis-3.2.8]# redis-cli -p 7001 shutdown

進入7006

 [root@localhost redis-3.2.8]# redis-cli -p 7006

127.0.0.1:7006> info replicaion

127.0.0.1:7006> info replication

# Replication

role:master

connected_slaves:1

slave0:ip=192.168.161.138,port=7005,state=online,offset=85,lag=1

master_repl_offset:85

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:2

repl_backlog_histlen:84

127.0.0.1:7006> exit

 

[root@localhost redis-3.2.8]# ps -ef | grep redis

root      5324     1  0 02:44 ?        00:00:03 redis-server *:7008 [cluster]    

root      5325     1  0 02:44 ?        00:00:03 redis-server *:7007 [cluster]    

root      5326     1  0 02:44 ?        00:00:03 redis-server *:7004 [cluster]    

root      5327     1  0 02:44 ?        00:00:03 redis-server *:7000 [cluster]    

root      5328     1  0 02:44 ?        00:00:03 redis-server *:7003 [cluster]    

root      5329     1  0 02:44 ?        00:00:03 redis-server *:7002 [cluster]    

root      5330     1  0 02:44 ?        00:00:03 redis-server *:7005 [cluster]    

root      5332     1  0 02:44 ?        00:00:03 redis-server *:7006 [cluster]    

root      5464  5288  0 03:22 pts/4    00:00:00 grep redis

 

重啟7001

[root@localhost redis-3.2.8]# redis-server 7001/redis-7001.conf

[root@localhost redis-3.2.8]# redis-cli -p 7001

127.0.0.1:7001> info replication

# Replication

role:slave

master_host:192.168.161.138

master_port:7006

master_link_status:up

master_last_io_seconds_ago:5

master_sync_in_progress:0

slave_repl_offset:365

slave_priority:100

slave_read_only:1

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

127.0.0.1:7001>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM