redis持久化和主从同步
redis持久化rdb与aof简介是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题, RDB持久化redis 提供了 RDB持久化 的功能,这个功能可以将 redis 在内存中的状态保存到硬盘中,它将手动执行。 也可以在 redis.conf 中配置,定期执行。 RDB持久化产生的RDB文件是一个经过压缩的二进制文件,这个文件被保存在硬盘中,redis可以通过这个文件还原数据库当时的状态。 实例: 1,启动redis服务端,修改配置文件redis.conf(修改前先备份) 6379/data/6379//data/6379 dbfilename dbmp.rdb bind 10.0.0.10 127.0.0.1 requirepass 123 save 900 1 save 300 10 save 60 100002.启动redis服务端 3.登录redis redis-cli -a 1234.此时检查目录,/data/6379底下还没有dbmp.rdb文件 5.通过save触发持久化,将数据写入RDB文件 127.0.0.1:6379> set age 18127.0.0.1:6379>6.此时再查看,发现多了两个文件 AOF持久化AOF(append-only log file) 记录服务器执行的所有变更操作命令(例如set del等),并在服务器启动时,通过重新执行这些命令来还原数据集 AOF 文件中的命令全部以redis协议的格式保存,新命令追加到文件末尾。 优点:最大程序保证数据不丢 缺点:日志记录非常大 redis-client 写入数据 > redis-server 同步命令 > AOF文件配置参数介绍: everysec no实例: 1.修改配置文件 redis.conf(先备份) 6379/data/6379//data/6379123900 1300 1060 100002.启动redis服务 redis-server /etc/redis.conf3.检查redis数据目录/data/6379/是否产生了aof文件 [root@localhost 6379] appendonly.aof dbmp.rdb redis.log4.登录redis-cli,写入数据,实时检查aof文件信息 [root@localhost 6379]5.设置新key,检查aof信息,然后关闭redis,检查数据是否持久化 redis-cli -a 123redis-server /etc/<span style="color: #000000;">redis.confredis -cli -a 123区别: rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能 aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog redis主从同步原理
=====================================================
实例环境准备 1,创建三个文件夹 mkdir /data/ 6380 6381 63822,复制三份 nginx.conf 并修改内容 port 6380/data/6380//data/6380-mode no port 6381/data/6381//data/6381-mode no /data/6382//data/6382-mode no3,分别启动三个实例 redis-server /data/6380/-server /data/6381/-server /data/6382/redis.conf主从规则: 主节点: 6380 从节点: 6381, 6382 4,配置主从同步 redis-cli -p 6381 SLAVEOF 127.0.0.1 6380<span style="color: #008000;"># <span style="color: #008000;"> 6382窗口界面命令行redis-cli -p 6382 <span style="color: #008000;">#<span style="color: #008000;"> 启动6382客户端 SLAVEOF 127.0.0.1 6380 <span style="color: #008000;">#<span style="color: #008000;">指明主的地址 5,检测主从状态 127.0.0.1:6382>127.0.0.1:6381><span style="color: #008000;">#<span style="color: #008000;"> 主库127.0.0.1:6380> info replication 6,测试写入数据,主库写入数据,检测从库数据 127.0.0.1:6380><span style="color: #008000;">#<span style="color: #008000;"> 从:127.0.0.1:6381>get name 如果主库挂了!解决方案: 1,手动进行主从复制故障切换 redis-cli -p 63802,检查从库主从信息,此时 master_link_status:down redis-cli -p 6381redis-cli -p 6382<span style="color: #000000;">info replication 3,既然主库挂,那就在6380和6382之间选一个新的主库 a,关闭6381的从库身份 redis-cli -p 6381b,将6382设为6381的从库 [root@localhost ~] 127.0.0.1:6382>127.0.0.1:6382> SLAVEOF 127.0.0.1 6381c,检查6382,6381的主从信息 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |