memcached
kann für eine statische Cachespeicherung Daten verwendet werden, die Datenbanksuche reduziert und in der Regel memcached.get(id)
und memcached.set(id)
.Kann Memcached zum Sperren verwendet werden?
Aber ist es in Ordnung, dies für Verriegelungsmechanismen zu verwenden? Gibt memcache.set
und memcached.get
immer die Daten, wenn es vorhanden ist, oder gibt es nur None zurück, wenn die Anfrage zu viel Zeit in Anspruch nimmt?
möchte ich von einem id
identifiziert den gleichzeitigen Zugriff auf eine bestimmte Ressource zu vermeiden, und ich verwende diese Logik:
def access(id):
if memcache.get(id):
return access
else:
memcache.set(id)
return true
Wenn ein Benutzer diese Ressource zuzugreifen versucht, wenn memcache.get(id) = username
einen Wert zurückgibt wir den Zugang sonst sinken Wir machen memcache.set(id) = username
, um den nachfolgenden Zugriff zu stoppen und den Zugriff für den aktuellen Benutzer zu erlauben.
Ist es in Ordnung, memcached
so zu verwenden? Will set
und get
tatsächlich geben Sie die Daten, wenn es unabhängig von der Zeit, die es dauert oder gibt es bestmögliche Ergebnis in der geringstmöglichen Zeit aus was auch immer ich gefunden habe (zum Beispiel: Guaranteed memcached lock) soweit ist der ehemaligen Kategorie und möglicherweise nicht Arbeit zum Sperren dachte, es könnte 99% der Zeit funktionieren.
Kann jemand klären und ob es alternative Schließmechanismen gibt?