我是靠谱客的博主 时尚大象,最近开发中收集的这篇文章主要介绍Redis03-持久化策略和主从复制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Redis的持久化策略

  • RDB:

redis的默认策略,在指定时间内生成数据快照,默认保存到dump.rdb文件中,当redis重启的时候会自动加载dump.rdb文件到内存中。

用户可以使用SAVE(同步)BSACE(异步)手动保存数据,可以设置服务器的save选项让服务器每间隔一段时间执行一次Bsave命令.

优点:
rdb是一个紧凑文件,直接使用rdb文件就可以还原数据,数据保存由一个子进程保存,不影响父进程的其他操作,恢复数据效率高于AOP.
缺点:
每次保存点之间导致redis不可意料的关闭,会数据丢失。由于每次保存数据都需要在进程fork()子进程里,数据量大时比较耗费性能 。

  • AOF:

AOF默认是关闭的,需要在redis.conf文件中开启。Redis支持AOP和RDB同时开启,同时开启时,AOF优先级高。
AOF原理:实时监听执行的命令,如果发现进行了修改数据的操作,同时直接同步到数据库文件中,同时会把命令记录到日志中,即使出现问题由于日志 已经记录命令,下次启动也会按照日志进行恢复数据.

优点:相对于RDB数据更安全.
缺点:相同数据集内存占用AOF要大于RDB,慢一些.
开启AOF的步骤:

修改redis.conf中。Appendonly yes 开启AOF.
Appendfilenname设置aof数据文件,名字随意命名.

Redis主从复制和读写分离

Redis往往是以集群的形式搭建,集群中有redis-proxy、master、replica、HA等几个角色。在读写分离实例中,新增read-only replica角色来承担读流量,replica作为热备不提供服务,架构上保持对现有集群规格的兼容性。redis-proxy按权重将读写请求转发到master或者某个read-only replica上;HA负责监控DB节点的健康状态,异常时发起主从切换或重搭read-only replica,并更新路由。

主从复制有两种复制方式:

  • 星型复制:所有的从节点都直接复制主节点,每个从节点互不影响,但是由于Redis是单线程的,都从主节点复制会给Master的CUP带来很大的压力.不推荐.
  • 链型复制:只有一个从节点复制,其它字节点依次从上一个节点复制,这样导致后面的子节点的延迟较长,但影响不大,所以推荐使用.

读写分离:
所有的数据都从Master中写进来,然后每个从节点去同步Master中的数据,用到数据的时候都从从节点中读取,一般不从Master中读.

基于Ducker搭建一主多从Redis集群

  • 拉取redis镜像
  • 创建三个Ducker容器
    //创建并运行 -给个名字 -给端口 -把opt/redis共享给data -后台运行
    #docker run –name redis1 –p 6379:6379-v/opt/redis:/data -d redis
    #docker run –name redis2 –p 6380:6380-v/opt/redis data -d redis
    #docker run –name redis3 –p 6371:6381-v/opt/redis:/data -d redis
    -不需要改主,只需要操作要设置为从的redis
    #docker exec -it redis2 redis -cli (进入redis2的命令行)
    Slaveof 主reidis的ip/端口号
    Role可以看是主还是从

如果要采用星型复制则两个从都取Slaveof主的端口号.
如果采用链型复制则redis2去Slaveof主的端口号redis3去Slaveof redis2的端口号.

最后

以上就是时尚大象为你收集整理的Redis03-持久化策略和主从复制的全部内容,希望文章能够帮你解决Redis03-持久化策略和主从复制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部