私は、複数のredis-clientがredis-serverに格納されている共通の構造にアクセスしているという問題があります。redisに格納されたデータのロック機構
- 特定のRedisクライアントは、(構造上の操作を読み書きをしなければならない)のRedisサーバに保存されている構造にアクセスしている場合は、他のRedisクライアントがあってはならない - :次のように
要件がありますアクセスしてリリースを待つことができます。
- 他のredis-clientが構造体にアクセスするたびに、更新された構造体にアクセスする必要があります。
Cコードでこの要件を満たすロック機構をどのように配置できますか。 ありがとうございました。
1)使用Redisのトランザクションと楽観的ロック:
redisトランザクション(MULTI/EXEC)で十分ですか? –
@Not_a_Golfer - 私の知識はRedisに限られています。構造私はハッシュに格納しています。 以下のシーケンスはC言語で動作しますか: - MULTI - > HGET - 構造体の一部のフィールドの更新 - > HSET - > EXEC – Amrendra47
トランザクションを使用して値を観察することはできません。それが必要なものなら、おそらくLuaスクリプトが良いでしょう。終了するまで原子的に実行されます。 –