redis緩存在項(xiàng)目中的使用 Redis可以作為一個(gè)數(shù)據(jù)庫(kù)使用嗎?
Redis可以作為一個(gè)數(shù)據(jù)庫(kù)使用嗎?R分布式redis緩存如何部署使用?我的標(biāo)題號(hào)在一篇文章中有詳細(xì)討論希望對(duì)你有幫助。redis怎么緩存用戶列表,做到可以分頁(yè)展示?普通尋呼一般是直接找到分頁(yè)緩存,按
Redis可以作為一個(gè)數(shù)據(jù)庫(kù)使用嗎?
R
分布式redis緩存如何部署使用?
我的標(biāo)題號(hào)在一篇文章中有詳細(xì)討論
希望對(duì)你有幫助。
redis怎么緩存用戶列表,做到可以分頁(yè)展示?
普通尋呼
一般是直接找到分頁(yè)緩存,按頁(yè)放入緩存,但是這種緩存有很多缺點(diǎn)。
如果緩存不能及時(shí)更新,一旦數(shù)據(jù)發(fā)生變化,之前的所有分頁(yè)緩存都將失效。
比如微博這樣的場(chǎng)景,現(xiàn)在微博下面有一個(gè)排名靠前的。這在傳統(tǒng)的分頁(yè)中很難處理。
思路
最近想到了另一種思路。
數(shù)據(jù)緩存在Redis中,ID作為鍵;
將數(shù)據(jù)ID和排序分?jǐn)?shù)存儲(chǔ)在Redis的跳轉(zhuǎn)列表中,即zset
查找數(shù)據(jù)時(shí),先從Redis中的skip list中取出對(duì)應(yīng)的分頁(yè)數(shù)據(jù),得到ID列表。
使用multi get一次從redis中獲取ID列表中的所有數(shù)據(jù)。如果有任何數(shù)據(jù)缺少某個(gè)ID,就從數(shù)據(jù)庫(kù)中查找,再次返回給用戶,并根據(jù)ID在Redis中緩存找到的數(shù)據(jù)。
在最后一步,你可以有一些提示:
比如在某些ID數(shù)據(jù)缺失的情況下,直接先返回給用戶,然后前端用ajax請(qǐng)求缺失的ID數(shù)據(jù),再動(dòng)態(tài)刷新。
還有一些優(yōu)化可能會(huì)使用Lua腳本合并操作,但考慮到Lua腳本運(yùn)行速度較慢,可能需要仔細(xì)測(cè)試。
如果使用Lua腳本,可以在一個(gè)請(qǐng)求中完成以下操作:
查找一個(gè)頁(yè)面上的所有文章,返回緩存文章的ID和內(nèi)容,以及未緩存文章的ID列表。
其他事情:
Lua支持LRU模式,也就是說(shuō),它像Memcached一樣工作。但似乎我還沒(méi)有 沒(méi)見(jiàn)過(guò)有人這樣用,很奇怪。
可能redis已經(jīng)準(zhǔn)備好存儲(chǔ)了,我不知道 不要擔(dān)心記憶的容量。