日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 缓存分页_基于redis做缓存分页

發布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 缓存分页_基于redis做缓存分页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在實際業務中我們會將一些熱數據緩存到redis里面,這時候數據量比較大的話,我們就要對這些熱數據進行分頁,分頁的方式有2種:

第一:從redis拿出所有數據后,再做內存分頁(不推薦),熱點數據小的時候可以這樣做,性能相差不是很大,但是當數據量大的時候,分頁期間就會占用大量內存,或撐爆;

第二:基于redis的數據結構做緩存分頁,這里又分2種

①:基于redis的list數據結構,直接通過list的數據結構,用range方法可以進行分頁,在數據量大的時候,性能也很可觀,但是當存在接口高并發訪問時,這個list可能會無限延長,且里面的數據會存在很多重復,這就會影響到正常的業務(不是很推薦);

②:基于redis的ZSet數據結構,通過Zset這個有序集合我們也可以做分頁,同樣也是用range方法,但是這里比較麻煩的是在初始化數據的時候Zset必須存放TypedTuple類型的數據,這個類型是一個value和score的鍵值對,具體可以查百度,這個score的生成比較麻煩我這邊測試時用的是當前數據在這個list的位置,然后Zset是根據這個score值來排序的,默認是從小到大;用這個的好處是,即使在高并發情況下Zset中也不會存在重復數據從而影響正常的業務;而且分頁效率也和list結構差不多;

③:用hash和Zset來一起實現;這個是問了一個朋友和得知的,Zset中存儲有序的id字段,通過分頁后拿到id,然后再用id去hash中取,感覺應該效率相差不大的,只是中間多了層從hash結構取,還需要維護又一個hash;(為何這樣做我也不清楚);

貼一張我測試list和ZSet的結果圖

總結

以上是生活随笔為你收集整理的java 缓存分页_基于redis做缓存分页的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。