安装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