請問,不同的django服務,能共享同一個memcache當中的內容嗎?為什么我在一個django服務中進行緩存的保存,在別的django服務中獲取不到對應key的值呢在django1.7的一個服務中如下:from django.core.cache import cachecache.set('mine', mine)
m = cache.get('mine')
print m當中的mine是一個obj,在自己服務中獲取是沒有問題的在另一個django1.5的服務中如下:from django.core.cache import cachem = cache.get('mine')
print m在這里m就是None了ps:兩個django服務的鏈接的memcache都是一樣的
3 回答

達令說
TA貢獻1821條經驗 獲得超6個贊
我用 django 的 cache 遇到過類似的問題.
但我使用的 backend 是 LocMemCache.
就是把 key 存到內存中。
但這里面的坑是,多個 django 進程并不共享一塊內存。
可能第一次訪問的時候是被進程1 處理的,第二次訪問卻被進程2處理,導致緩存未命中。

白板的微信
TA貢獻1883條經驗 獲得超3個贊
我推測有兩種可能性:
1、set時候的key并不是真正存放在cache中的key,也許增加了前綴,不同的版本可能前綴也不一樣
2、memcached 中存放的應該是一個序列號后的對象,不同版本的django可能序列號算法不一樣,你可以set一個簡單的值驗證一下。
添加回答
舉報
0/150
提交
取消