Redis-------事务和订阅

一.事务

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

2.命令:

      

3.watch监控

     Watch指令,类似乐观锁,事物提交吋,如果Key的値已被別的客户端改変,比如某个list己被别的客戸端push/pop过了,整个事各队列都不会被抉行。通过WATCH命令在事各执行之前监控了多个Keys,尚若在WATCH之后有任何Key的值发生了変化,EXEC命令抉行的事物都将被放弃,同吋返回Nullmulti-bulk应答以通知调用者事物执行失败。

4.锁

      乐观锁(Optimistic Lock),顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时
候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量
乐观锁策略:提交版本必须大于记录当前版本才能执行更新。

      悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

5.概括:

     Case1:  正常执行

     Case2:  放弃事务

     Case3:  全体连坐

     Case4:  冤头债主

     Case5:  watch监控

二.订阅:

  1.概念:进程间的一-种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

  2.命令:

     

  3.案例:

    

  4.主从复制:主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以 读为主

     

     

      

       

      

猜你喜欢

转载自blog.csdn.net/yiye2017zhangmu/article/details/81356694