Mysql
将用户的点赞记录写入Mysql
- 记录文章被赞的次数
- 用户点赞了那些文章
缺点
热门文章会有很多用户点赞,甚至是短时间内被大量点赞,数据库读写压力大。
redis存储、批量刷回数据库
redis存储数据快,支持多种数据结构,且支持incr方法
优点
- 性能高
- 缓解数据库读写压力
缺点
- 开发复杂
- 不能保证数据安全性,redis挂掉的时候会丢失数据,同时不及时同步redis中的数据, 可能会在redis内存置换的时候被淘汰掉
具体实现
Mysql
新增文章点赞数字段
,用户点赞文章表。
Redis
public void saveLiked2Redis(String likedUserId, String likedPostId) {
String key = RedisKeyUtils.getLikedKey(likedUserId, likedPostId);
redisTemplate.opsForHash().put(RedisKeyUtils.MAP_KEY_USER_LIKED, key, LikedStatusEnum.LIKE.getCode());
}
public void unlikeFromRedis(String likedUserId, String likedPostId) {