多进程 - 多个进程去读取redis消息队列是否会发生冲突?

浏览:32日期:2022-08-21

问题描述

问题

我创建多个进程去同时读取redis做的消息队列 请问这个会发生读取冲突么? 原因是什么呢?

问题解答

回答1:

不会冲突,队列中的每个元素只会被读取一次。

回答2:

只是读取没问题。。。

回答3:

redis自己保证队列读写的互斥。redis是单线程,工作方式大概是这样的。你的多进程读取其实是可以并行发多个读取请求包,这些请求包到达redis的socket buffer中,redis的处理是串行响应你的请求,无锁。如果哪天redis改成多线程的方式,同样可以通过加锁互斥保证队列的读取不会出事情。

相关文章: