美文网首页
Redis基础知识4-事务、发布订阅、复制

Redis基础知识4-事务、发布订阅、复制

作者: 页川叶川 | 来源:发表于2019-06-16 10:43 被阅读0次
    • 注意: 撰写本文目的主要是为了给自己做一个备忘录,如果你学过Redis并且希望从本文中找到一些忘记的知识点,那么你可以阅读本文章。由于文章内讲解并不是很多,因此此文章并不适合小白入门使用。

    1.事务

    1.1事务简介

    是什么:

    • 可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不允许加塞

    能干嘛:
    一个队列中,一次性、顺序性、排他性地执行一系列命令。

    怎么玩:

    • 常用命令
    • Case1:正常执行
    • Case2:放弃事务
    • Case3:全体连坐
      如果一个指令在加入事务时发生错误,则事务块中所有的指令失效。
    • Case4:冤头债主
      如果一个指令可以加入到事务中,但逻辑上是错误的,则在执行事务块中的语句时此语句会报错,但不会影响到其他的语句。
    • Case5:watch监控

    1.2.Redis事务命令

    Redis事务命令

    使用示例:

    > MULTI
    > set k1 v1
    > set k2 v2
    > get k2
    > set k3 v3
    
    > EXEC
    输出结果:
    OK
    OK
    "v2"
    OK
    

    1.3.watch监控

    • 监视一个(或多个)key,如果在事务执行之前这个(或这些)key被其他命令所改动,那么事务将被打断。
      监控
    watch key
    

    取消监控

    unwatch
    
    • 一旦执行了exec操作,之前加的监控锁都会被取消掉。

    小结:

    • 通过WATCH命令在事务执行之前监控了多个Keys,倘若在WATCH之后有任何Key的值发生了变化,EXEC命令执行的事务都将被抛弃,同时返回Nullmulti-bulk应答以通知调用者事务执行失败。

    1.4.事务3阶段、3特性

    3阶段

    事务3阶段

    3特性

    事务3特性

    2.发布与订阅

    2.1.是什么

    • 进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
    • 订阅/发布消息图:
    订阅/发布消息图

    2.2.命令

    命令

    2.3.案例

    案例

    3.主从复制

    3.1.复制

    是什么:

    • 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的mastre/slaver机制,Master以写为主,Slave以读为主。

    能干嘛:

    • 读写分离
    • 容灾恢复

    怎么玩:

    • 1.配从(库)不配主(库)
    • 2.从库配置:
      (1).连接主库:slaveof 主库IP 主库端口
      每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
      (2).Info replication:查看当前状态(主机或是备机以及其他状态)
    • 3.修改配置文件细节操作
    修改配置文件细节操作
    • 4.常用3招
      (1).一主二仆:一台主机,两台备机
      (2).薪火相传
      薪火相传
      (3).反客为主:
      将从机设置为主机:SLAVEOF no one,使当前数据库停止与其他数据库同步,转成主数据库。

    3.2.复制原理

    复制原理

    3.3.哨兵模式(sentinel)

    是什么:

    • 哨兵模式就是反客为主的自动版,能够后台监控主机是否故障,如果故障了就根据投票数自动将从库转为主库

    使用步骤:

    • 自定义的/myredis目录下新建sentinel.conf文件,名字绝对不能错。
    • 配置哨兵,填写内容
    sentinel monitor 被监控数据库名字(自己起个名字) 127.0.0.1 6379 1
    # 上面最后一个数字1,表示主机挂掉后slave投票看让谁接替成为主机,得票数多的成为主机
    
    • 启动哨兵
    redis-sentinel /myredis/sentinel.conf
    # 上述目录依照各自的实际情况配置,可能目录不同
    

    3.4.复制的缺点

    • 由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以Master同步到Slave机器有一定的延时,当系统很繁忙的时候,延时问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。

    文集推荐:

    Java基础方法集1
    Python基础知识完整版
    Spring Boot学习笔记
    Linux指令进阶
    Java高并发编程
    SpringMVC基础知识进阶
    Mysql基础知识完整版
    健康管理系统学习花絮(学习记录)
    Node.js基础知识(随手笔记)
    MongoDB基础知识
    Dubbo学习笔记
    Vue学习笔记(随手笔记)

    声明:发表此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本我们(QQ:981086665;邮箱:981086665@qq.com)联系联系,我们将及时更正、删除,谢谢。

    相关文章

      网友评论

          本文标题:Redis基础知识4-事务、发布订阅、复制

          本文链接:https://www.haomeiwen.com/subject/nfywfctx.html