实例网站制作教程,eclipse 网站开发学习,如何登录中国建设银行网站,企业诚信建设点赞具体要实现功能有哪些#xff1f;
可以点赞的地方#xff1a;对帖子点赞#xff0c;对评论点赞点一次是点赞#xff0c;再点一次是取消赞统计点赞的数量#xff08;计数#xff0c;string#xff09;#xff0c;帖子被点赞的数量#xff0c;某个用户被点赞的数量…点赞具体要实现功能有哪些
可以点赞的地方对帖子点赞对评论点赞点一次是点赞再点一次是取消赞统计点赞的数量计数string帖子被点赞的数量某个用户被点赞的数量
点赞使用到的Redis数据结构是什么
记录某个实体有哪些用户点赞使用集合数据结构 记录某个用户获得的点赞数使用字符串数据结构进行技术
一个点赞过程是什么
如果本身有赞了再去点击点赞按钮就被认为是取消赞
如何判断userId是否给某个实体点赞了
给某个实体点赞的key是like:entity_type:entity_id value是集合{用户id} 所以我们只需判断或者这个实体的用户id集合然后判断userId是不是属于这个集合 如果属于代表userId已经给这个用户点赞 如果不属于则代表userId还没有给这个用户点赞
为什么要用redis事务
因为点赞这个过程包括两个一个是对实体点赞的用户id需要加入/移除到集合中另一个是实体所属的用户需要增加/减少获赞数 为了保证这两个数据的一致性和原子性所以需要用到redis事务。
一个关注过程是什么样 这样设置就可以实现我关注的人、我关注的帖子、我关注的评论等功能 还可以实现查看关注我的粉丝关注这个帖子的粉丝关注这个评论的粉丝等功能 为什么要用有序集合存储关注的实体和粉丝
使用集合的原因需要获取里面的元素。使用有序集合原因需要分页显示。有序集合可以返回指定索引范围的数据集合做不到。列表也可以返回指定范围的数据但是列表无法去重。
综上两点原因使用有序集合 zrange或zrevrange返回有序集中指定区间内的成员通过索引。 列表无法去重 集合无法返回指定索引范围内的元素 所以使用有序集合 有序集合的zrange和zrevrange命令可以返回有序集合中指定索引范围内的成员实现分页显示。
Redis作为一级缓存是怎么做的
用户信息作为经常要访问的信息如果直接去访问数据库会造成对数据库的访问压力增大。所以我将用户信息缓存在Redis中并设置过期时间如果查询某个用户先去Redis缓存中查询如果查询到了就返回该用户信息 不用去数据库查询。如果查询不到用户就初始化该用户的缓存信息从数据库取出来再放到redis中并设置过期时间。如果修改了用户信息需要清楚缓存。
优先从缓存中取值User getCache(int userId)取不到时初始化缓存数据User initCache(int userId)数据变更时清除缓存数据void clearCache(int userId) // 1.优先从缓存中取值private User getCache(int userId) {String redisKey RedisKeyUtil.getUserKey(userId);return (User) redisTemplate.opsForValue().get(redisKey);}// 2.取不到时初始化缓存数据private User initCache(int userId) {User user userMapper.selectById(userId);String redisKey RedisKeyUtil.getUserKey(userId);redisTemplate.opsForValue().set(redisKey, user, 3600, TimeUnit.SECONDS);return user;}// 3.数据变更时清除缓存数据private void clearCache(int userId) {String redisKey RedisKeyUtil.getUserKey(userId);redisTemplate.delete(redisKey);}在获取用户时 public User findUserById(int id) {User user getCache(id);if (user null) {user initCache(id);}return user;}变更用户信息是需要清除该用户的缓存。