工作复习
首先是点赞评论转发量等用的数据结构是什么以及在并发情况下怎么计数
用的是redis的哈希结构,大key就是这个文章这个帖子的id,
值就是四个字段对应四个数字,通过这个语法进行增加减少
这个increment他是redis对哈希结构操作的原子性操作,保证了数据在并发下的一致性
一般会有个帖子的预热工作,就是用户点击后会先查缓存有没有数据,没有的话会查找数据库然后加载到redis里提高访问性能
还有就是收藏,用户有没有收藏帖子
初始化set,key是用户id,值是攻略的id,然后根据id拿到收藏数,然后如果收藏了点击就是攻略的收藏数减一,将这个set中这个攻略的值删除,反之;
点赞设置了一天最多最多点5次,key的设计就到带上用户和文章id
有个问题,这里要设计key的过期时间,当天的最后一分一秒减去当前时间是过期时间,但假如当前点赞时间是当天的最后一分最后一秒时会减去为0,set过期时间的话会报错,所以可以写个三元式如果为0自动变成2秒
后面就是高亮显示,用的ik分次器
传过来字段后,查找出文章后也就是对应的es对象,将关键字做一个高亮标签然后将这个es对象通过反射copy给需要返回的对象前端显示
multiMatchQuery是无论你传入了多少个,比如标签,文章题,内容,有一个命中就能检索出这个文章
查看7道真题和解析