redis在购物车模块的疑问

辉酱OvO 2020-07-29 09:31:04
最近学完redis,想加入到自己的商城项目中,对购物车模块有些疑问

我是觉得因为购物车涉及频繁修改数据库(修改商品数量),所以适合用redis。那我们这种场景下应该怎么用redis呢?传统的修改是先改数据库,再把redis清掉,但是感觉这个场景不适合这样,因为并没有减轻数据库的写压力。我的想法是把商品数量的改变全都放到redis中进行,但是什么时候刷回数据库就很难去把握了,而且这样子感觉一致性也不好保证。还请大佬指点一下实际生产中redis在购物车中的应用。

...全文
949 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kimsung 2020-07-29
  • 打赏
  • 举报
回复
引用 2 楼 辉酱OvO 的回复:
[quote=引用 1 楼 kimsung 的回复:]一般来说大部分的生产环境数据库的负荷都是来自查询。 如果数据更新非常频繁,也可以考虑暂存到redis,再用定时任务去把redis数据同步到RDB。 但是不推荐这种做法。
那我们实际的生产中,在购物车模块是如何利用redis的呢,也只是用它来缓解读是么[/quote] 我不知道你的
引用 2 楼 辉酱OvO 的回复:
[quote=引用 1 楼 kimsung 的回复:]一般来说大部分的生产环境数据库的负荷都是来自查询。 如果数据更新非常频繁,也可以考虑暂存到redis,再用定时任务去把redis数据同步到RDB。 但是不推荐这种做法。
那我们实际的生产中,在购物车模块是如何利用redis的呢,也只是用它来缓解读是么[/quote] 我不知道你的购物车模块是什么东西,如果只是单纯为了学习,可以把商品信息缓存到redis里,或者用redis排序所有商品中被购物车加入过最多的商品列表,还有统计点击量,还有把一些命中率高的,处理速度慢的查询缓存到redis行等等,或者你的系统是MSA结构,或者多台服务器可以用redis做分布式锁来管理事物等等,,,,吧?
kimsung 2020-07-29
  • 打赏
  • 举报
回复
要明确为什么要使用redis,,,使用redis要解决什么问题?。。
辉酱OvO 2020-07-29
  • 打赏
  • 举报
回复
引用 1 楼 kimsung 的回复:
一般来说大部分的生产环境数据库的负荷都是来自查询。
如果数据更新非常频繁,也可以考虑暂存到redis,再用定时任务去把redis数据同步到RDB。 但是不推荐这种做法。


那我们实际的生产中,在购物车模块是如何利用redis的呢,也只是用它来缓解读是么
kimsung 2020-07-29
  • 打赏
  • 举报
回复
一般来说大部分的生产环境数据库的负荷都是来自查询。 如果数据更新非常频繁,也可以考虑暂存到redis,再用定时任务去把redis数据同步到RDB。 但是不推荐这种做法。
天空狩猎者 2020-07-29
  • 打赏
  • 举报
回复
对于购物车这种,购物订单这种需要频繁修改数据的操作行为,肯定是要把数据放到redis缓存中的,你想啊,数据库是不支持大量数据并发操作的,否则数据库就会崩的,而且数据库的速度相对redis来说慢的可不是一星半点,就拿平常淘宝做活动来说,单单是一件物品的数量操作可能就达到了每秒上万次的操作,如果使用数据库,假定它不会崩溃,你可能经常遇到明明你买的时候商品数量还有很多,但是商家会告诉你买晚啦,没货啦。这就是因为数据库和后台数据交互太慢导致的。放回数据库也很简单的,设置定时任务就好啦,在访问数据量小的时候进行操作
辉酱OvO 2020-07-29
  • 打赏
  • 举报
回复
引用 4 楼 kimsung 的回复:
[quote=引用 2 楼 辉酱OvO 的回复:][quote=引用 1 楼 kimsung 的回复:]一般来说大部分的生产环境数据库的负荷都是来自查询。
如果数据更新非常频繁,也可以考虑暂存到redis,再用定时任务去把redis数据同步到RDB。 但是不推荐这种做法。


那我们实际的生产中,在购物车模块是如何利用redis的呢,也只是用它来缓解读是么[/quote]

我不知道你的

引用 2 楼 辉酱OvO 的回复:
[quote=引用 1 楼 kimsung 的回复:]一般来说大部分的生产环境数据库的负荷都是来自查询。
如果数据更新非常频繁,也可以考虑暂存到redis,再用定时任务去把redis数据同步到RDB。 但是不推荐这种做法。


那我们实际的生产中,在购物车模块是如何利用redis的呢,也只是用它来缓解读是么[/quote]

我不知道你的购物车模块是什么东西,如果只是单纯为了学习,可以把商品信息缓存到redis里,或者用redis排序所有商品中被购物车加入过最多的商品列表,还有统计点击量,还有把一些命中率高的,处理速度慢的查询缓存到redis行等等,或者你的系统是MSA结构,或者多台服务器可以用redis做分布式锁来管理事物等等,,,,吧?[/quote]


哦哦哦,我应该知道我的问题在哪里了,我想问的应该是怎么去解决购物车商品数量频繁修改这个问题,这个操作一般不用处理么,我感觉可能会对数据库造成很大的压力耶,难道只用MQ做个削峰就可以了么?(没啥实际工作经验,所以很多场景只能自己想象,见谅..)

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧