我创建多个进程去同时读取redis做的消息队列 请问这个会发生读取冲突么? 原因是什么呢?
认证高级PHP讲师
競合は発生せず、キュー内の各要素は 1 回だけ読み取られます。
読むだけなら問題ありません。 。 。
Redis 自体は、キューの読み取りと書き込みの相互排他を保証します。 Redis はシングルスレッドであり、おおよそ次のように動作します。マルチプロセス読み取りでは、実際には複数の読み取りリクエスト パケットを並行して送信できます。これらのリクエスト パケットは、redis のソケット バッファーに到着し、ロックなしでリクエストに逐次応答します。いつか Redis がマルチスレッドに変更された場合は、キューの読み取り時に何も起こらないようにミューテックスをロックすることもできます。
競合は発生せず、キュー内の各要素は 1 回だけ読み取られます。
読むだけなら問題ありません。 。 。
Redis 自体は、キューの読み取りと書き込みの相互排他を保証します。 Redis はシングルスレッドであり、おおよそ次のように動作します。マルチプロセス読み取りでは、実際には複数の読み取りリクエスト パケットを並行して送信できます。これらのリクエスト パケットは、redis のソケット バッファーに到着し、ロックなしでリクエストに逐次応答します。いつか Redis がマルチスレッドに変更された場合は、キューの読み取り時に何も起こらないようにミューテックスをロックすることもできます。