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