数据库表中至少要包含三个字段:被点赞用户id,点赞用户id,点赞状态。再加上主键id,创建时间,修改...
if not request.user == user_obj: # 6.判断用户是否已经给该文章点过了(点过就不能点了)查点赞点踩表是否有对应数据 is_click = models.UpAndDown.objects.filter(article=article_obj,user=request.user) if not is_click: # 7.操作数据库存储数据,注意article表里的数据也要同步 # 8.判断是点赞了...
1、Redis数据库设计 Redis是K-V数据库,没有统一的数据结构,针对不同的功能点设计了不同的K-V存储结构 用户某篇文章的点赞数:使用HashMap数据结构,HashMap中的key为articleId,value为Set,Set中的值为用户ID,即HashMap<String, Set<String>> 用户总的点赞数:使用HashMap数据结构,HashMap中的key为userId,value...
分区表:对于点赞数据量特别大的应用,可以考虑将点赞表进行分区存储,以减小单个表的大小,提高查询和写入性能。 缓存技术:使用缓存技术(如 Redis)存储热点数据(如热门文章的点赞数),以减少数据库查询压力。 五、扩展性设计 在设计点赞数据库时,还需要考虑系统的扩展性,以便应对未来业务的增长和变化。可以采取以下措...
项目需求需要查看都谁点赞了,所以要存储每个点赞的点赞人、被点赞人,不能简单的做计数。 文章分四部分介绍: Redis 缓存设计及实现 数据库设计 数据库操作 开启定时任务持久化存储到数据库 一、Redis 缓存设计及实现 1.1 Redis 安装及运行 Redis 安装请自行查阅相关教程。
在点赞数据库设计中,我们通常需要两个主要的表:用户表(users)和点赞表(likes)。 用户表(users) 用户表主要存储用户的基本信息,如用户ID、用户名、密码等,以下是一个简单的用户表结构: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL, ...
首先每条微博你所看到的点赞总数肯定本地和后端分开,也就是你点赞后,本地加1,先保证你自己马上看到变化。然后通过点赞事件的方式传递给队列中,肯定不会直接写关系数据库,一条流量明星微博,千万粉丝点赞,评论里再点赞的请求事件挺吓人的。 先走队列,队列后面一路事件流是流式点赞统计,那么每条微博都会有个当日总...
应该叫冷数据 2、点赞、评论数等。这些数据频繁变动,应该叫热数据。 我现在的疑问就是:针对这个场景,如何设计数据库? 需要分成两个表吗?一个表读比较多,一个表写比较多,这样分出来是不是有好处? 冷热数据物理存储分开存储的思路是对的,冷热数据读写特性不同(冷数据的读写比例高于热数据),分开储存之后可以...
由于公司没用到redis 直接操作数据库mysql, 一般来说 对于作品或文章来时 点赞与取消赞 是一件很频繁操作的事件 ,这样数据量一大感觉 频繁的更新会很耗服务器性能。目前 想法是 用个redis做缓存,频繁点赞的更新操作 放到redis中 一个放(用户最终的点赞状态) 一个放待更新待插入到数据库的点赞状态,通过一个定...
在微博项目中,负责处理点赞功能的代码设计成为一项重要工作。每个微博内容与点赞数被分别存储,确保了信息的清晰与高效管理。利用基于Redis的二次开发计数器进行数据存储,此方法具备高效存储与优化性能的特性。在近期几年的点赞数据中,内存被充分利用,当存储资源接近极限时,系统自动将最古老的数据转移至...