memcached
は、データベース参照を減らすキャッシュ固定データに使用でき、通常はmemcached.get(id)
とmemcached.set(id)
です。memcachedをロックに使用できますか?
しかし、これをロック機構に使用するとよいですか? memcache.set
とmemcached.get
は、データが存在する場合は常にデータを返しますか、要求に時間がかかりすぎる場合はNoneを返しますか?
は私がid
で識別される特定のリソースへの同時アクセスを回避したいと私はこのロジックを使用:memcache.get(id) = username
が値を返す場合、我々は他のアクセスを拒否する任意のユーザーがそのリソースにアクセスしようとすると
def access(id):
if memcache.get(id):
return access
else:
memcache.set(id)
return true
を、 memcache.set(id) = username
を実行して後続のアクセスを停止し、現在のユーザーにアクセスを許可します。
memcached
をこのように使用しても問題ありませんか? set
とget
は、実際にデータを入手できるかどうかにかかわらず、時間がかかっていないか、見つかったものから可能な限り最善の結果を得ています(たとえば、Guaranteed memcached lock)。これまでのカテゴリのものです。それは時間の99%を動作するかもしれないと思ったロックのための仕事。
誰かが明確にすることができますか、代替のロック機構があるかどうか?