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

達(dá)令說
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
我用 django 的 cache 遇到過類似的問題.
但我使用的 backend 是 LocMemCache.
就是把 key 存到內(nèi)存中。
但這里面的坑是,多個(gè) django 進(jìn)程并不共享一塊內(nèi)存。
可能第一次訪問的時(shí)候是被進(jìn)程1 處理的,第二次訪問卻被進(jìn)程2處理,導(dǎo)致緩存未命中。

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