Redis的主从搭建

发表时间:2017-07-19 22:01:32 浏览量( 12 ) 留言数( 0 )

学习目标:

1、了解主从配置的原理

2、掌握主从搭建


学习过程:

我们这里以run2作为从服务器,主的服务器不需要修改

1、打开从服务器redis.conf

设置下面几个属性

slaveof <masterip> <masterport>    指定master的ip和port

masterauth <master-password>       master有验证的情况下

slave-read-only yes                设置slave为只读模式

例如:

slaveof run1.com 6379

masterauth redis123456

slave-read-only yes


2、使用info查看情况

登录

 ./redis-cli -h run2.com

输入info命令

attcontent/ddc90b58-6f62-46f6-8b4b-adf6981a6552.png

如果有错,查看一下bind有没有设置错误,还有就是防火墙有没有问题


3、登录主服务器

 ./redis-cli -h run1.com

随便set个值

run1.com:6379> set name liubao

OK

在登录从服务器

 ./redis-cli -h run2.com

就可以get出来了。

run2.com:6379> get name

"liubao"

   主从服务器的使用场景可以做读写分离,在写数据时使用主服务器,读时使用从服务器。

   但是仅仅使用主从配置,并不能保证高可用性。如果主服务器挂了,客户端并不会自动选择从服务器的。虽然数据还是在从服务器,并没有丢失,但是事实上客户端也已经是不可用的了。

   如果主服务器没有使用持久化,那么在重启主服务时,所有从服务器里面原理保存的数据也会冲掉。所以如果仅仅采用主从模式,并不适合把redis作为储存数据使用,数据丢失时常会发生的。

   如果想要保证数据能达到高可用性,那么可以引入sentinel(哨兵机制),哨兵有点类似keepalive,会不断的检查当前的所有主从服务器是否可用,如果从服务器不可用会自动从集群中删除,如果主服务器不可用,那么还需要通过选举自动从服务器中选出新的主服务器。