您的位置:首页 > 数据库 > Redis

Redis 高可用: 主从复制

2016-11-26 03:48 513 查看
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 入侵事件分析
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: