項目中redis使用場景


用redis緩存來實現用戶最近瀏覽的商品列表

1,最近瀏覽的記錄肯定是需要失效時間的

                確定使用緩存,緩存可以設置失效時間(最大設置為一個月,但是這已經足夠了),如果使用mysql等數據庫,還需要定時任務清除,很明顯是不切合實際的,

          2,最近瀏覽的記錄肯定是有個數限制的,不可能記錄所有的瀏覽記錄

                目前使用的主流緩存有 memached和redis兩種(原諒無知的我並不清楚其他的),redis有LTRM來修剪,保證存儲的瀏覽的條數;

          3,我們需要在哪里添加保存瀏覽商品的方法

                用戶最近瀏覽的商品,肯定是再用戶最近打開商品詳情頁的時候才算瀏覽,這點毋庸置疑;

          4,怎么保證每次添加的瀏覽的商品列表按着瀏覽的先后順序排序?

                每次用戶的瀏覽商品的ID,可以以用戶的ID作為key,以List作為value,儲存在redis中,而List是有序的,而且,在使用LRANGE的時候能保證先進后出,后進先出的原則,已達到排列在最前面的商品始終是里當前最近瀏覽的那個商品;

          5,怎么保證用戶在連續瀏覽同一個商品的時候,不會重復保存商品?

              可以使用redis中LREM來移除列表中與參數 value(該商品ID) 相等的元素。同時在使用Lpush重新再List插入最新的瀏覽商品;

          6,讀取緩存的時候,又該如何保證分頁?

             redis中的LRANGE可以指定獲取指定長度的元素,能夠滿足需要;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM