84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
我创建多个进程去同时读取redis做的消息队列 请问这个会发生读取冲突么? 原因是什么呢?
认证高级PHP讲师
不会冲突,队列中的每个元素只会被读取一次。
只是读取没问题。。。
redis自己保证队列读写的互斥。redis是单线程,工作方式大概是这样的。你的多进程读取其实是可以并行发多个读取请求包,这些请求包到达redis的socket buffer中,redis的处理是串行响应你的请求,无锁。如果哪天redis改成多线程的方式,同样可以通过加锁互斥保证队列的读取不会出事情。
不会冲突,队列中的每个元素只会被读取一次。
只是读取没问题。。。
redis自己保证队列读写的互斥。redis是单线程,工作方式大概是这样的。你的多进程读取其实是可以并行发多个读取请求包,这些请求包到达redis的socket buffer中,redis的处理是串行响应你的请求,无锁。如果哪天redis改成多线程的方式,同样可以通过加锁互斥保证队列的读取不会出事情。