Redis 高可用: 主从复制

来源:互联网 发布:python取小数点后两位 编辑:程序博客网 时间:2024/04/29 05:52

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 入侵事件分析



0 0
原创粉丝点击