第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將分頁數(shù)據(jù) 放入redis

如何將分頁數(shù)據(jù) 放入redis

拉丁的傳說 2018-10-29 05:00:36
如何將分頁數(shù)據(jù) 放入redis
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻1784條經(jīng)驗 獲得超2個贊

普通分頁
一般分頁做緩存都是直接查找出來,按頁放到緩存里,但是這種緩存方式有很多缺點。
如緩存不能及時更新,一旦數(shù)據(jù)有變化,所有的之前的分頁緩存都失效了。
比如像微博這樣的場景,微博下面現(xiàn)在有一個頂次數(shù)的排序。這個用傳統(tǒng)的分頁方式很難應(yīng)對。
一種思路
最近想到了另一種思路。
數(shù)據(jù)以ID為key緩存到Redis里;
把數(shù)據(jù)ID和排序打分存到Redis的skip list,即zset里;
當(dāng)查找數(shù)據(jù)時,先從Redis里的skip list取出對應(yīng)的分頁數(shù)據(jù),得到ID列表。
用multi get從redis上一次性把ID列表里的所有數(shù)據(jù)都取出來。如果有缺少某些ID的數(shù)據(jù),再從數(shù)據(jù)庫里查找,再一塊返回給用戶,并把查出來的數(shù)據(jù)按ID緩存到Redis里。
在最后一步,可以有一些小技巧:
比如在缺少一些ID數(shù)據(jù)的情況下,先直接返回給用戶,然后前端再用ajax請求缺少的ID的數(shù)據(jù),再動態(tài)刷新。

還有一些可能用Lua腳本合并操作的優(yōu)化,不過考慮到Lua腳本比較慢,可能要仔細測試。
如果是利用Lua腳本的話,可以在一個請求里完成下面的操作:
查找某頁的所有文章,返回已緩存的文章的ID及內(nèi)容,還有不在緩存里的文章的ID列表。

查看完整回答
反對 回復(fù) 2018-11-16
  • 1 回答
  • 0 關(guān)注
  • 1318 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號