Redis分散ロックとトランザクションの実装
1. Redis分散ロックの仕組み
Redisにおける分散ロックは、複数のクライアントが同一リソースを同時に操作する競合状態を防ぐために使われます。ロック取得にはSETNXコマンド(存在しない場合のみ設定)を使用し、成功時は1を返却します。ロックの保持を確実にするため、トランザクション処理とPIPELINEの併用が必要です。
2. トランザクションの役割
RedisではMULTI/EXECコ ...
5月21日 01:21 投稿
Redis SETNXを用いた分散ロックの実装と注意点
分散システムにおける同時実行制御において、RedisのSETNXコマンドは重要な役割を果たします。特にユーザーごとの操作排他制御が必要な場面で効果を発揮します。
SETNXによる排他制御の基本実装
以下は、ユーザーが特定のアクティビティでギフトを受け取る際の排他制御の実装例です:
public String obtainReward(int eventId, int rewardId, String userId) {
if ( ...
5月18日 12:14 投稿