用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 了 什么地方用到_项目中redis使用场景相关推荐

  1. 项目使用了redis还需要mysql_【11-05】lnmp项目中Redis和Mysql配合使用应该注意哪些问题?...

    [今日话题] lnmp项目中Redis和Mysql配合使用应该注意哪些问题? - 刺客 1. 我这边因为项目小,主要用redis充当mysql的缓存使用,把活跃数据预读到redis中,这样绝大部分的请 ...

  2. redis 了 什么地方用到_细节拉满!美团首推“百万级”Redis进阶笔记究竟有什么魅力...

    Redis 相信大家现在项目里面都会用到一个技术--Redis.毫不夸张的说Redis作为现在最受欢迎的NoSQL数据库之一,不管是项目还是面试都会有所涉及!我们都知道在项目中使用redis,无非是从 ...

  3. redis php高级使用_项目中应用Redis+Php的场景

    前言 一些案例中有的同学说为什么不可以用string类型,string类型完全可以实现呀 我建议你看下我的专栏文章<Redis高级用法>,里面介绍了用hash类型的好处 商品维度计数 对商 ...

  4. springboot项目中redis客户端(Jedis、Lettuce、Redisson)

    一.redis客户端的对比 1).Jedis Jedis作为Redis官方推荐的一款客户端,也算是简单好用,基础功能齐全,在中小型项目中还是很好用的,但是Jedis是直连模式,在多个线程间共享一个Je ...

  5. ssm把图片保存到项目中_项目中的图片跨域问题解决方式

    现象 首先,在生产环境中,由于进行编辑图片时,将图片回显到ReactCrop组件中进行可裁剪编辑,然而回显时,需要将图片转化为base64的格式或者blob对象, 此时需要将图片次绘制成canvas进 ...

  6. 读写分离怎么实现_项目中如何实现读写分离?怎么配置?

    上篇文章中,在两个 windows 系统的电脑上安装了最新版 8.0.21 MySQL 数据库,并且配置了主从.MySQL如何配置读写分离? 主从复制的原理思想也很简单,就是从库不断地同步主库的改动, ...

  7. 项目中使用粘性布局不起作用_项目中的 Git 使用规范

    祖师爷 Linus 在创造了伟大的 Linux 之后,又创造了应用最广泛的代码管理工具 -- Git,极大地提高了程序员的生产力. 现如今大部分项目都在使用 Git 作为代码管理工具,不论是在代码管理 ...

  8. 关于mysql的项目_项目中常用的MySQL 优化

    本文我们来谈谈项目中常用的MySQL优化方法,共19条,具体如下: 一.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我 ...

  9. Java 并发在项目中的使用场景

    1.并发编程的三个核心问题: (1)分工:所谓分工指的是如何高效地拆解任务并分配给线程 (2)同步:而同步指的是线程之间如何协作 (3)互斥:互斥则是保证同一时刻只允许一个线程访问共享资源 (4)应用 ...

最新文章

  1. GreenDao 使用方法:
  2. 安装网关报mysql服务ini_linux 操作系统下ORACLE数据库使用透明网关连接MYSQL
  3. 乔布斯留给后人最宝贵的十条经验!
  4. java.io.eof_java.io.IOException: java.io.EOFException: Unexpected end of input stream错误
  5. java 删除某一个学生_java编写一个程序,实现功能(定义一个类学生表示学生1. 增加学生2显示 3. 修改 4. 删除5查找某...
  6. Visual Studio现可使用EditorConfig
  7. 2022年3月Python小屋编程比赛获奖名单
  8. 555定时器的应用——单稳态触发器
  9. SPSS新手教程——通过探索性分析,检验数据的正态性分布
  10. Cisco Packet Tracer 思科交换机模拟器常见命令
  11. ios 自带录屏框架replayKit的使用
  12. 请谨慎使用预训练的深度学习模型
  13. 如何把自己打造成为一名金领架构师-开悟篇
  14. 直接序列扩频通信(DSSS)
  15. 字母大小转换及其十进制的ASCLL码值
  16. BFS算法之迷宫的最短路径
  17. 【JPEG2000】JPEG2000开源库: OpenJPEG
  18. java greenplum_接口篇 – Java连接Greenplum
  19. 会轻易的找到“回家”的路
  20. python实现欧拉公式

热门文章

  1. java基于微信小程序的智能停车场管理系统 ssm 计算机毕业设计
  2. html盒子背景图片路径,CSS3-背景
  3. Topic太多!RocketMQ炸了!
  4. 苹果手机上好用的连接linux,都说苹果机好用,那么苹果手机为什么不卡呢?
  5. ipad air和ipad pro的区别
  6. 甲骨文能去咸鱼买吗?甲骨文能转让吗?怎么防止甲骨文服务器乱扣费?
  7. 系统学习大模型的20篇论文
  8. 小波神经网络学习程序
  9. 佳和她的四合院 像老北京一样生活
  10. 在FreeSWITCH中设置视频通话