小言_互联网的博客

Linux redis安装及主从配置/切换

412人阅读  评论(0)

安装redis需要gcc环境,如果没有安装gcc环境的朋友可以参考我之前写的文章:Linux gcc 离线安装

环境描述:
redis版本:Redis 5.0.5

主redis:192.168.115.35 6379

从redis:192.168.115.37 6380

系统信息:Red Hat Enterprise Linux Server release 7.0 (Maipo)
                  Linux version 3.10.0-123.el7.x86_64 (mockbuild@x86-017.build.eng.bos.redhat.com)

1、安装Redis

先从redis官网下载最新版本:https://redis.io/   

第一步解压: tar zxvf redis-5.0.5.tar.gz(我的解压目录:/usr/local/redis-5.0.5)

第二步编译:make(要在解压的那个目录下执行)。编译完成后在/usr/local/redis-5.0.5/src里才会有redis-server文件

至此redis安装完成,主从服务器redis的安装步骤都是一样,下面我们进行简单验证:

主redis:

[root@localhost redis-5.0.5]# src/redis-server redis.conf
[root@localhost redis-5.0.5]# redis-cli -p 6379
192.168.115.35:6379> set nm 1122
OK
192.168.115.35:6379> get nm
"1122"

***经验小结************************************************************************************

⑴默认安装完成后,我们启动redis服务时要规范地加载redis.conf配置文件,虽然不加也可以运行。

⑵加载默认的redis.conf配置文件时,实际上只能本地redis-cli连接,因为在配置文件里是bind 127.0.0.1,如果需要其它主机也能进行redis-cli连接,则需要更改成:bind 0.0.0.0

⑶注意别忘记打开防火墙端口,Linux7和7以下的版本打开防火墙命令是不一样的,文章末有提供参考资料

*************************************************************************************************

2、主从配置

第一步:将主从redis配置文件redis.conf中的aemonize no 改为 yes

第二步:修改从redis.conf配置文件中的port 6379 为6380,添加slaveof 192.168.115.35 6379(也可以使用命令,后面会提到)

第三步:启动主从redis服务(先主后从):[root@localhost redis-5.0.5]# src/redis-server redis.conf

第四步:测试同步

主redis:

[root@localhost redis-5.0.5]# src/redis-cli -p 6379
127:0.0.1:6379> set nm 123
OK
127:0.0.1:6379> get nm
 "123"

从redis:

[root@localhost redis-5.0.5]# src/redis-cli -p 6380
127:0.0.1:6380> get nm
"123"

3、读写分离

我们在从redis服务上进行写操作是不允许的

从redis:

[root@localhost redis-5.0.5]# src/redis-cli -p 6380
127:0.0.1:6380> set nm  aabbcc
(error) READONLY You can't write against a read only replica.


3、主从切换

第一步:修改从redis配置:[root@localhost redis-5.0.5]# src/redis-cli -p 6380 slaveof no one

第二步:修改主redis配置:[root@localhost redis-5.0.5]# src/redis-cli -p 6379 slaveof 192.168.115.37 6380

配置修改完成后,主从服务会自动切换完成

测试对主redis写入操作:

[root@localhost redis-5.0.5]# src/redis-cli -p 6379
127:0.0.1:6380> set nm  12345
(error) READONLY You can't write against a read only replica.

切换主从服务的时候,建议停止对外redis的服务,这样能保证主从数据一致,也能保证切换后不会丢失数据

 

最后

⑴redis的主从模式是读写分离的,读数据找从redis,写数据找主redis,这样在高并发情况下我们也能高效地读写操作。

⑵redis的备份模式,有两种:

一种是RDB模式(Redis DataBase),某一时刻将数据持久化到磁盘中,对大规模的数据恢复十分高效,如果对数据安全性要求不高可使用RDB模式。

一种是AOF模式(Append Only File),是将执行过的写指令记录下来,在数据恢复时按照从前到后的顺序再将指令都执行一遍。默认的AOF持久化策略是每秒钟fsync一次(fsync是指把缓存中的写指令记录到磁盘中)。我们通过配置redis.conf中的appendonly yes就可以打开AOF功能,默认是RDB模式。如果对数据安全性要求很高可以使用AOF模式。


参考资料:

https://blog.csdn.net/zfl092005/article/details/17523945

https://www.cnblogs.com/eaglezb/p/6073739.html


转载:https://blog.csdn.net/sslj81/article/details/102380867
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场