我最近我一直在使用memcached,並且我確定你正在嘗試使用依賴關係對於memcached來說「按原樣」是不可能的,但是需要從客戶端進行處理。此外,數據複製應該發生在服務器端而不是客戶端,這些是兩個不同的域。 (至少在memcached中,看到它缺乏數據存儲邏輯,memcached的重點在於極端的極簡主義性能)
對於數據複製(針對物理故障集羣節點的保護),您應該簽出代替http://www.couchbase.org/get/couchbase/current。
對於deps算法,我可以在客戶端看到類似這樣的內容:對於任何給定的鍵,都有一個可疑的附加鍵,其中包含相關鍵的列表/數組。
# - delete a key, recursive:
function deleteKey(keyname):
deps = client.getDeps(keyname) #
foreach (deps as dep):
deleteKey(dep)
memcached.delete(dep)
endeach
memcached.delete(keyname)
endfunction
# return the list of keynames or an empty list if the key doesnt exist
function client.getDeps(keyname):
return memcached.get(key_name + "_deps") or array()
endfunction
# Key "demokey1" and its counterpart "demokey1_deps". In the list of keys stored in
# "demokey1_deps" there is "demokey2" and "demokey3".
deleteKey("demokey1");
# this would first perform a memcached get on "demokey1_deps" then with the
# value returned as a list of keys ("demokey2" and "demokey3") run deleteKey()
# on each of them.
乾杯