redis
根据某些字段建索引
建立表
drop table user_info
create table user_info(
`id` bigint(20) NOT NULL AUTO_INCREMENT comment 'id',
`user_id` varchar(45) NOT NULL,
`nick_name` varchar(45) DEFAULT NULL comment '昵称',
`head_portrait` varchar(250) DEFAULT NULL comment '头像',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`last_modified_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;
drop table comment_info
create table `comment_info`(
`id` bigint(20) NOT NULL AUTO_INCREMENT comment 'id',
`user_id` varchar(45) NOT NULL,
`like_count` bigint(20) NOT NULL DEFAULT '0' comment '点赞数',
`type` varchar(50) NOT NULL comment '视频的类型',
`source` varchar(45) NOT NULL comment '视频源',
`tp_video_id` varchar(50) DEFAULT NULL,
`video_id` bigint(20) NOT NULL,
`comment` MEDIUMTEXT NOT NULL comment '评论内容',
`reply_count` bigint(20) NOT NULL DEFAULT '0' comment '相关评论数,是根路径的评论',
`pid` bigint(20) comment '父亲评论的ID,对应id字段',
`rid` bigint(20) comment '根ID,这个用来获得相关评论',
`state` tinyint(4) NOT NULL DEFAULT '1' comment '0已评论,1审核通过,2审核失败',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP comment '',
`last_modified_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`)
)ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;
1. 缓存某个视频的所有顶级评论ID列表(最多缓存500个,设置7天有效期)
2. 缓存每一个评论的内容(设置7天有效期)
这个内容,顶级评论还包含(最近的两个评论ID)
3. 缓存每一个顶级评论的评论的ID列表(最多缓存500个,设置7天有效期)
4. 缓存所有用户的头像和昵称信息(设置7天有效期)
1. 用户增加了顶级评论
失效,1
2. 点赞了顶级评论
失效,2
3. 增加了次级评论
失效2,3
4. 点赞了次级评论
失效,2
5. 每一次评论,需要核对,头像和昵称,如果有变化需要更新数据库,并失效缓存,4
注意:
1. 如果信息,缓存里面也要记录空数组,或者空信息
2. 如果合作方视频,没有下载下来,不可以评论