• redis学习笔记(3)


    redis学习笔记第三部分 --redis持久化介绍,事务,主从复制

    三,redis的持久化
    RDB(Redis DataBase)
    AOF(Append Only File)

    RDB:
    在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里.

    Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到
    一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。
    整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能
    如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方
    式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。

    AOF:
    以日志的形式记录每个写操作,将redis执行过的所有写指令记录下来(读操作不记录)
    只许追加文件但不可改写文件,redis启动之初会读取该文件重新构建数据,换言之,
    redis重启的话就根据日志文件的内容将写指令从前到后执行一次,来完成数据的恢复.


    四,redis的事务

    五,redis的消息订阅发布(了解)
    是什么:进程间的一种消息通信模式,发送者(pub)发送消息,订阅者(sub)订阅消息.

    六,redis的主从复制:
    是什么:
    行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到从机的master/slave机制,
    master以写为主,slave以读为主;

    能干嘛:
    做集群,缓解读取数压力,做失效转移,某一台机器宕机,不影响客户端使用;

    怎么玩:
    1.配从(库)不配主(库),主机先配置自己的IP和端口;
    2.从库配置: slaveof主库ip 主库端口
    每次与master断开后,都需要重新连接,除非你配置进redis.conf文件 
    slaveof 127.0.0.1 6379 --配置后变为从机,绑定的主机ip和端口地址
    info replication; --查看本机器的角色

    3.修改配置文件细节操作:
    拷贝多个redis.conf文件
    开启daemonize yes
    pid 文件名字
    指定端口
    log文件名字
    dump.rdb名字

    4.常用3招:
    一主二仆
    --一个主机2个从机,主机将从机的数据复制到从机

    薪火相传
    --上一个slave可以使下一个slave的master,slave同样可以接收其他slaves的连接同步请求,
    那么该slave作为链条中的下一个的master,可以减轻master的写压力;
    中途变更转向,会清楚之前的数据,重新建立拷贝最新的数据
    slaveof新主库ip 新主库端口;

    反客为主
    --slaveof no one ,使当前数据库停止与其他数据库的同步,转成主数据库;

    5.复制的原理
    slave启动成功第一次连接到master后会发送一个sync命令,
    master接到命令启动后台的存盘进程,同时收集所有接收到的修改数据的命令,
    在后台进程执行完毕后,master将传送整个数据文件到slave,以完成一次全量同步;
    全量复制:
    slave服务在接收到数据库文件后,将其存盘并加载到内存中
    增量复制:
    master继续将新的所有收集到修改命令一次传给slave,完成同步
    但是只要重新连接master,就会做一次全量同步;自动执行;

    6.哨兵模式(反客为主的自动模式)
    是什么:
    反客为主的自动版,能够在后台监控主机是否故障,如果故障了根据投票数自动将从库转为主库;

    怎么玩:
    配置哨兵;
    新建一个哨兵配置文件 sentinel.conf 文件
    port 26301
    ##哨兵监控的主机名称 地址 端口 选举某个从机作为主机的哨兵的个数,
    sentinel monitor master1 192.168.0.12 6301 2

    原有的master挂了,在从机中选举了一个作为主机, 旧主机恢复后,作为从机;


    7.复制的缺点:
    由于所有的写操作都是现在master上操作,然后同步到slave上,所以master同步到slave有一定延迟,当系统
    很繁忙的时候,延迟问题会更加严重,slave机器数量的增加也会使这个问题更加严重;

    以上就是redis学习笔记的全部内容

  • 相关阅读:
    default关键字用法
    【转载】SpringMvc和servlet简单对比介绍
    build模式入门,build模式理解(转载)
    tomcat logs 目录下各日志文件的含义
    @Component, @Repository, @Service,@Controller的区别
    在项目开发时为什么要先写接口,再写实现类?
    java 中static关键字注意事项
    this关键字使用注意事项
    两个对象之前如何建立联系
    html页面监听事件
  • 原文地址:https://www.cnblogs.com/ccxp/p/8679073.html
Copyright © 2020-2023  润新知