redis在分布式中,并发修改某个值,怎么保证数据的准确性

在分布式系统中,常见redis 中某个value的值会被修改,如果没有做这个控制,那么可能会导致这个顺序的错乱,比如说,先让A的数据些入进去,再B的数据,如果没有控制,会导致B先写,然后A,最后导致这个结果错误,这个是非常常见的一个问题,那么我们怎么来解决这个问题呢?

借鉴这个CAS乐观锁来解决这个事情,比如在每次写入数据的时候,添加一个时间戳,当你要写入的时候先去读取一下,当前这个key下的value的值的时间戳是否比当前这个缓存里的时间戳更新,如果更新那么就更新下,如果没有缓存里的这个新,那么就不去更新,而是重新获取当前这个值,利用这个cas的锁的方式,控制下

总结下,乐观锁控制方式,通过这个版本号,或者时间戳,OK,不多说,上图:

 

redis在分布式中,并发修改某个值,怎么保证数据的准确性