Redis 高可用: 主從複製

來源:互聯網
上載者:User

Centos 6.4 安裝 redis 3.2. (安裝參考:Redis 源碼安裝)


Centos222

Centos224

[centos222]# redis-cli

127.0.0.1:6379>set kk 123

127.0.0.1:6379>get kk

"123"

127.0.0.1:6379>get mm

(nil)

127.0.0.1:6379>exit

[centos224]# redis-cli

127.0.0.1:6379>set kk 123

127.0.0.1:6379>get mm

"22222"

127.0.0.1:6379>get kk

(nil)

127.0.0.1:6379>exit

接下來需要遠端存取,設定檔設定區域網路IP,關閉保護模式

vi /etc/redis/6379.conf

bind 127.0.0.1 192.168.1.222

protected-mode no

bind 127.0.0.1 192.168.1.224

protected-mode no

重啟redis 服務,添加入站連接埠,可相互訪問對方的redis伺服器。

[centos222]# iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

[centos222]# redis-cli -h 192.168.1.224 -p 6379

192.168.1.224:6379> get mm

"22222"

[centos222]# iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

[centos224]# redis-cli -h 192.168.1.222 -p 6379

192.168.1.222:6379> get kk

"123"

訪問沒有密碼,不安全,現在設定系統密碼參數 requirepass

(以centos222為例,兩台伺服器都需要設定)

127.0.0.1:6379> config get requirepass                   #查看參數資訊

1) "requirepass"

2) ""

127.0.0.1:6379> config set requirepass 123456     #設定參數(密碼)值

OK

127.0.0.1:6379> config get requirepass                   #設定密碼後無法操作

(error) NOAUTH Authentication required.

127.0.0.1:6379> auth 123456                                              #使用密碼訪問

OK

127.0.0.1:6379> get kk

"123"

127.0.0.1:6379> exit

[centos222]#  redis-cli -h 192.168.1.224 -p 6379 -a 123456          #遠端存取

192.168.1.224:6379> get mm

"22222"

192.168.1.224:6379>

但是,當redis服務重啟之後,requirepass 密碼失效了,變回了空值

要永久生效,在設定檔添加該參數:vi /etc/redis/6379.conf

requirepass 123456

開始配置主從複製了。非常簡單。主要使用配置參數 slaveof。

vi /etc/redis/6379.conf

Centos222 (master)

Centos224 (slave)

bind 127.0.0.1 192.168.1.222

protected-mode no

port 6379

requirepass 654321

 

bind 127.0.0.1 192.168.1.224

protected-mode no

port 6379

requirepass 654321

slaveof 192.168.1.222 6379

masterauth 654321

slave-read-only yes

配置完成,重啟服務。發現在master設定的key,在slave可以讀取(slave唯讀)。主從配置完成。

[root@centos222 ~]# redis-cli

127.0.0.1:6379> auth 654321

OK

127.0.0.1:6379> set qq 6666666

OK

127.0.0.1:6379> get qq

"6666666"

127.0.0.1:6379>

[root@centos224 ~]# redis-cli

127.0.0.1:6379> auth 654321

OK

127.0.0.1:6379> get qq

"6666666"

127.0.0.1:6379>

127.0.0.1:6379> set pp 444

(error) READONLY You can't write against a read only slave.

info Replication 查看複製配置資訊

127.0.0.1:6379> info Replication

# Replication

role:master

connected_slaves:1

slave0:ip=192.168.1.224,port=6379,state=online,offset=392,lag=0

master_repl_offset:392

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:2

repl_backlog_histlen:391

127.0.0.1:6379> info Replication

# Replication

role:slave

master_host:192.168.1.222

master_port:6379

master_link_status:up

master_last_io_seconds_ago:3

master_sync_in_progress:0

slave_repl_offset:420

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

 

 


兩篇理論比較好的博文: redis持久化RDB和AOF   Redis持久化

安全及漏洞:Redis Crackit 入侵事件分析



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.