redis主从复制、rdb备份

本次只写一台主机上调试,一台主服务器,多台从服务器

1.redis主从复制功能

首先下载好redis压缩包,解压后打开redis.conf或redis.windows.conf进行配置

事先复制多份作为子服务器

主服务器中配置:port  6379

 daemonize yes开启安全模式

notify-keyspace-events EX默认是空,保存配置后,重启Redis服务,使配置生效

从服务器中配置的:port除了6379的就行,我测试使用的是6378、6380......

daemonize yes开启安全模式

notify-keyspace-events EX
slaveof 127.0.0.1 6379 集群用到 后面的地址和端口用于指向主服务器
sentinel monitor mymaster 127.0.0.1 6379 2 集群用到,设置master的名字,在代码中配置会用到mymaster,后面的地址同样是指向主服务器的地址,2表示当有2个从服务器都连接失败后就停止

配置结束

 

以下命令都是在redis目录下cmd执行

启动主服务器redis-server.exe redis.windows.conf同样这个windows看你的文件名有没有

启动成功后启动从服务器redis-server.exe redis.windos.conf --sentinel注意sentinel模式必须要,不然启动报错

全部从服务器启动成功

 

分别在redis文件夹下新开cmd窗口执行命令

redis-cli -h 127.0.0.1 6379 -a pwd启动主服务器客户端,进行set name 123

redis-cli -h 127.0.0.1 6378 -a pwd没有密码的话-a pwd就不要  当上一步执行了set即可在6378这个客户端执行get name查看主服务器设置的值了,没出错就会显示123

 

以上就是全部的redis主从复制过程,那么在代码中只需要配置

主服务器的地址
spring.redis.host=127.0.0.1
#redis主服务器连接端口
spring.redis.port=6379
从服务器的master名
spring.redis.sentinel.master=mymaster
spring.redis.sentinel.nodes=127.0.0.1:6378,......

service中只需要注入

@Autowired
private StringRedisTemplate redisTemplate;

使用这个自带的类就能在redis中就行操作数据了,操作的数据也会复制在spring.redis.sentinel.nodes配置的列表里,主服务器就行写,从服务器就行读,这也就是传说中的读写分离。

 

springboot启动类上加一下注解
@EnableCaching//因为要使用redis,所以打开缓存,
@EnableScheduling//定时器总开关,因为我们需要多个定时器来控制
@SpringBootApplication
@EnableRedisHttpSession

 

2.rdb备份数据

在主服务器redis目录下启动好服务器并打开客户端,执行

save命令即可自动生成rdb文件,默认的配置中配置好备份规则,使用默认的就好了。

配置文件中配置了dir指向了rdb的文件路径。不需要修改,默认就行

重启服务器,从启客户端执行n:

config get dir没出错后执行

bgsave即可恢复数据

再次get name即可查询到以前的数据了。

备份结束

appendonly.aof dump.rdb

appendonly no

appendfsync everyses

数据操作复合配置中的备份规则时,就会自动备份了。

 

 

 

你可能感兴趣的:(数据库)