Redis儲存分頁資料

2021-07-03 20:33:51 字數 478 閱讀 2921

普通分頁

一般分頁做快取都是直接查詢出來,按頁放到快取裡,但是這種快取方式有很多缺點。

如快取不能及時更新,一旦資料有變化,所有的之前的分頁快取都失效了。

比如像微博這樣的場景,微博下面現在有乙個頂次數的排序。這個用傳統的分頁方式很難應對。

一種思路

最近想到了另一種思路。

資料以id為key快取到redis裡;

把資料id和排序打分存到redis的skip list,即zset裡;

當查詢資料時,先從redis裡的skip list取出對應的分頁資料,得到id列表。

用multi get從redis上一次性把id列表裡的所有資料都取出來。如果有缺少某些id的資料,再從資料庫裡查詢,再一塊返回給使用者,並把查出來的資料按id快取到redis裡。

在最後一步,可以有一些小技巧:

比如在缺少一些id資料的情況下,先直接返回給使用者,然後前端再用ajax請求缺少的id的資料,再動態重新整理。

用Redis快取Web網頁的分頁資料

zset資料結構補充 redis中存放資料都是將資料序列化放入記憶體中,所以將物件序列化有兩種方式 流序列和json zadd key,score,members 向key的鍵下面新增元素,排序方式預設是以score的字典公升序,score是double型別的值,不能傳錯了。這裡的key可以認為是指...

EasyUI DataGrid分頁資料繫結

記錄東西感覺很痛苦,總結東西很痛苦,麻煩,不過為了下次的方便和知識的牢固以後要堅持總結。easyui datagrid分頁資料繫結 在解決方案中新建兩個檔案formmain.aspx html也可以 和handler1.ashx 一般處理程式 前台頁面很簡單 繫結該datagrid的 一般處理程式 ...

SQL分頁資料查詢

在許多資料庫應用系統中,會對資料進行大量的查詢操作。當查詢資料量比較大時查詢所用的時間就會變得較慢,所以我們希望可以分批的獲取資料。特寫了乙個儲存過程用於分批獲取資料。鑑於游標效率低,故此處沒有採用。create procedure selectpage tablename nvarchar 64 ...