皮皮网

【家政门户 源码】【主峰主图源码】【字牌麻将源码】rediswatch源码

2024-11-18 23:33:15 来源:火狐100源码下载

1.Mulit ComWatch的使用

rediswatch源码

源码家政门户 源码

Mulit ComWatch的使用

源码家政门户 源码

       1. 执行 watch key 监控事务中要操作的字段

源码家政门户 源码

       2. 执行 multi 开启事务

源码家政门户 源码

       3. 写入具体的业务操作

源码家政门户 源码

       4. 执行 exec 并返回执行结果

源码家政门户 源码

       é¦–å…ˆ watch 监控 key 所起的作用实际上是一个乐观锁,它所监控的是在事务期间有没有其他客户端对所监控的值进行修改,通过REDIS_DIRTY_CAS作为标志位,如果key对应的值被其他客户端修改了则开启REDIS_DIRTY_CAS,如果没有被修改则不开启REDIS_DIRTY_CAS。

源码家政门户 源码

       ç„¶åŽ multi 的作用是开启事务,如果执行了 multi 则表示开启事务,那么接下来发送到客户端的命令不会立即执行,而是被加入到一个FIFO的队列中,直到遇到 exec 命令,则队列中的命令会依次执行并根据先进先出的顺序返回执行结果。

源码家政门户 源码

       æ‰§è¡Œ exec 命令时,首先会判断REDIS_DIRTY_CAS是否开启,如果开启,说明key的值已经被其他客户端修改过了,这时就不会再执行事务队列中的命令而是会返回(nil),如果REDIS_DIRTY_CAS没有开启,说明在执行事务期间key没有被修改,则继续执行事务队列并返回执行结果。

源码家政门户 源码

       è¿˜æœ‰ä¸€ç‚¹ï¼Œä¸€ä¸ªwatch对应的是一个事务,再开启一个事务时需要提前设置watch.

源码家政门户 源码