redis 了 什么地方用到_项目中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可以指定获取指定长度的元素,能够满足需要;

用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可以指定获取指定长度的元素,能够满足需要;
经验分享 程序员 微信小程序 职场和发展