一、redis 主从同步
主从复制过程:
slave 与 master 建立连接。发送 sync 命令。
master 会启动一个后台进程,将数据库快照保存到文件中,同时 master 主进程会开始收集新的命令并缓存。
后台完成保存后,就将此文件发送给 slave。
slave 将此文件保存到硬盘上。
1. 主服务器给自己设置好密码即可(关闭selinux,开放端口)
2. 从服务器修改配置文件
# replicaof <masterip> <masterport> #主服务器的ip和端口 replicaof 192.168.80.133 6379 # masterauth <master-password> #主服务器的密码 masterauth 123456
3. 重启服务器并测试。
二、Redis 数据持久化
redis 是一个支持持久化的内存数据库,也就是说需要经常将内存中的数据同步到硬盘来保持持久化。
snapshotting(快照) --默认
RDB 持久化方式能够在指定的时间间隔对数据进行快照存储。是默认的持久化方式。这种方式将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。这种持久化方式被称为快照 snapshotting。
append-only file(缩写 aof)
使用AOF 会让redis 更加耐久,可以使用不同的持久化策略;每次写的时候备份、每秒备份、无备份。使用默认的每秒备份策略,redis的性能依然很好(备份是有后台线程进行处理的,主线程会尽力处理客户端请求),一旦出现故障,最多丢失1秒的数据。
编辑redis 配置文件开启AOF 持久化
[root@localhost ~]# vim /etc/redis/6379.conf appendonly no #默认不使用AOF 持久化,将 no 改为 yes,appendonly yes # appendfsync always #有写操作,就马上写入磁盘。效率最慢,但最安全 appendfsync everysec #默认,每秒写入一次磁盘 # appendfsync no #不进行AOF 备份,将数据交给操作系统处理。最快,最不安全
测试
重启redis 服务,登录client 添加一个键值,退出并查看是否生成 appendonly.aof 。
[root@localhost /var/lib/redis/6379]# redis-cli 127.0.0.1:6379> auth 123456 OK 127.0.0.1:6379> set ssss 123 OK 127.0.0.1:6379> get ssss "123" 127.0.0.1:6379> [root@localhost /var/lib/redis/6379]# ll total 8 -rw-r--r-- 1 root root 55 Dec 31 22:54 appendonly.aof