Redis持久化
redis的2种持久化:
RDB
RDB启动方式:save命令
每当执行save命令的时候,都会立即进行一次快照保存!就是把运行时redis服务内存中的所有k-v存储起来!!
RDB 持久化方式是会在一个特定的时间间隔里面保存某个时间点的数据快照,我们拿到这个数据快照过后就可以根据这个快照完整的复制出数据,这个快照可以理解为数据的备份文件。
备份文件:dump.rdb
配置持久化:
修改 redis.conf
定位到 save :save(时间)(变化的值)
AOF(默认关闭)
AOF 是一种保存执行命令的形式,它跟 RDB 的区别是,AOF 并不是把数据保存下来,而是保存执行的动作。在开启 AOF 功能的时候,客户端连接后执行的每一条命令都会被记录下来。
配置持久化:
修改 redis.conf
定位到appendonly ,把no更改为yes
备份文件:appendonly.aof
当启动AOF时,默认停止RDB
AOF写数据的三种策略
always 每次写入操作均同步到AOF文件中,数据零误差,性能较低。
everysec 每秒同步到AOF中,数据准确性较高,性能较高,最多丢失1秒数据。
no 由系统控制何时将命令同步到AOF文件,整个过程不可控。
redis通讯标准报文格式
例:
Redis主从复制
1.准备2台虚拟机,分别装好redis
2.开放每台服务器的6379端口
3.编辑redis master服务的配置文件redis.conf
daemonize yes
requirepass 123456
logfile redis.log
注释掉:bind 127.0.0.1 -::1 或修改为:bind 0.0.0.0 表示支持远程连接
4.编辑redis slave服务器的配置文件redis.conf
daemonize yes
定位到masterauth
masterauth 123456
requirepass 123456
logfile redis.log
注释掉:bind 127.0.0.1 -::1 或修改为:bind 0.0.0.0 表示支持远程连接
5.分别启动2个redis服务,且使用redis客户端连接redis服务,输入一下命令
info replication
此时会发现2个redis服务的role都是master
6.在Slave服务器上运行一下命令,完成主从复制
slaveof 主服务器IP地址 6379