2012-02-29 9 views
2

私はRedisNodeJSを一緒に使用しています。mranney's driverで、私のNodeJSウェブサーバはレディスからデータを取得しています。レディスに戻る。しかし、この操作(Xと呼ぶ)には時間がかかるので、複数のユーザーが同じリソース上で同時に呼び出すことができます。レディスストア(または任意のデータベース?)ロック機構(NodeJS)

したがって、ユーザーAがXを発し、ユーザーBがXを同時に起動すると、ユーザーAはジョブを終了し、ユーザーBは(処理済みの)データを取得しXを実行します。その間、ユーザーBは待機します。ユーザーの順序は無関係です。一度に1つだけです。だから私のシナリオでこれを達成する方法は? Redisをロック/アンロックする方法は?それも可能ですか?

答えて

6

SETNXのように聞こえるシナリオについて詳しく知ることなく、Redisでロックを実装する方法はいくつかあります。 RedisのドキュメントのDesign pattern: Locking with SETNXを参照してください。また、transactions in Redisは面白い読書かもしれませんが、私はそれがあなたの後に何をしているのか正確には考えていません。

+1

すばらしいリンク!私はこれがまさに私が必要とするものだと思います!私はすでにトランザクションについて知っていましたが、ロックには何も見つかりませんでした。どうもありがとうございました。 :) – freakish

関連する問題