Redis -处理并发读写

2exbekwf  于 2023-10-15  发布在  Redis
关注(0)|答案(1)|浏览(140)

我正在使用一个Redis数据库,我经常需要读取大量数据。然而,当我在阅读的过程中,可能有另一个进程并发地向同一个数据库写入数据,这可能会改变我试图读取的数据。
这给我带来了一个问题,因为当我启动一个读操作时,我需要数据快照在读操作开始时保持一致,而不考虑任何并发的写操作。
我的问题是
1.是否有一种方法可以配置阅读过程,以检索读取操作开始时的数据状态,而不管读取过程中可能发生的任何并发写入?
1.如果没有,Redis中是否有一种机制可以在读操作进行时暂时阻止写操作?
我尝试过使用事务来进行阅读和写,但我注意到我读的数据仍然被写操作改变。我也考虑过使用redlock,但它不符合我的需要,因为我想允许并发阅读。

cgyqldqp

cgyqldqp1#

Redis Transactions是我的解决方案。Redis transactions在阅读时会“阻塞”其他操作。

正如official redis Transactions docs所说:
事务中的所有命令都被序列化并按顺序执行。其他客户端发送的请求永远不会在Redis事务执行过程中被处理。这保证了命令作为单个隔离操作执行。

相关问题