mysql 点赞数据库设计_基于redis实现的点赞功能设计思路详解

本文详细介绍了如何设计和实现基于Redis的点赞功能,以缓解数据库读写压力。通过使用Redis的Set、Hash和计数器数据结构,实现点赞的高效存储和统计,同时定期将Redis中的数据刷回MySQL。在页面展示和用户点赞操作时,需要同时查询Redis和MySQL以保证数据一致性。
摘要由CSDN通过智能技术生成

点赞其实是一个很有意思的功能。基本的设计思路有大致两种, 一种自然是用mysql等

数据库直接落地存储, 另外一种就是利用点赞的业务特征来扔到redis(或memcache)中, 然后离线刷回mysql等。

直接写入Mysql

直接写入Mysql是最简单的做法。

做两个表即可,

1、post_like

记录文章被赞的次数,已有多少人赞过这种数据就可以直接从表中查到;

2、user_like_post

记录用户赞过了哪些文章, 当打开文章列表时,显示的有没有赞过的数据就在这里面;

缺点

1、数据库读写压力大

热门文章会有很多用户点赞,甚至是短时间内被大量点赞, 直接操作数据库从长久来看不是很理想的做法。

redis存储随后批量刷回数据库

redis主要的特点就是快, 毕竟主要数据都在内存嘛;

另外为啥我选择redis而不是memcache的主要原因在于redis支持更多的数据类型, 例如hash, set, zset等。

下面具体的会用到这几个类型。

优点

1、性能高

2、缓解数据库读写压力

其实我更多的在于缓解写压力, 真的读压力, 通过mysql主从甚至通过加入redis对热点数据做缓存都可以解决,

写压力对于前面的方案确实是不大好使。

缺点

1、开发复杂

这个比直接写mysql的方案要复杂很多, 需要考虑的地方也很多;

2、不能保证数据安全性

redis挂掉的时候会丢失数据, 同时不及时同步redis中的数据, 可能会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值