当前位置: 首页 > news >正文

特产网站开发的目的做网站的时候遇到的问题

特产网站开发的目的,做网站的时候遇到的问题,菏泽哪里有做网站的,怎样在网上推广前言 简单记录一下在SpringBoot项目中#xff0c;使用Redis实现点赞/排行榜功能#xff0c;可同理实现收藏/关注功能#xff0c;可拓展实现共同好友/共同关注/关注推送功。主要用到了Redis中的Set集合和ZSet集合。 一、指定使用某个索引的数据库 在Redis中#xff0c;可…前言 简单记录一下在SpringBoot项目中使用Redis实现点赞/排行榜功能可同理实现收藏/关注功能可拓展实现共同好友/共同关注/关注推送功。主要用到了Redis中的Set集合和ZSet集合。 一、指定使用某个索引的数据库 在Redis中可以使用SELECT命令来选择要使用的数据库索引。默认情况下Redis有16个数据库索引编号从0到15。 SELECT 15 二、Redis集合(Set)数据类型的SADD、SREM、SMEMBERS命令 1.SADD 命令 1用法SADD key val_1 或 SADD key val_1, val_2 ... 2作用将一个或多个成员元素加入到集合中已经存在于集合的成员元素将被忽略。 3返回值被添加到集合中的新元素的数量不包括被忽略的元素。 4示例 redis SADD myset hello (integer) 1 redis SADD myset foo (integer) 1 redis SADD myset hello (integer) 0 redis SMEMBERS myset 1) hello 2) foo 2.SREM 命令 1用法SREM key val_1 或 SREM key val_1, val_2 ... 2作用移除集合中一个或多个成员 3返回值被成功移除的元素的数量不包括被忽略的元素。 4示例 redis SADD myset1 hello (integer) 1 redis SADD myset1 world (integer) 1 redis SADD myset1 bar (integer) 1 redis SREM myset1 hello (integer) 1 redis SREM myset1 foo (integer) 0 redis SMEMBERS myset1 1) bar 2) world 3.SMEMBERS 命令 1用法SMEMBERS key 2作用返回集合中的所有的成员。 3返回值集合中的所有成员。 4.SISMEMBER 命令 1用法SISMEMBER key member 2作用判断成员元素是否是集合的成员。 3返回值如果成员元素是集合的成员返回 1 。 如果成员元素不是集合的成员或 key 不存在返回 0 。 4示例 redis SADD myset1 hello (integer) 1 redis SISMEMBER myset1 hello (integer) 1 redis SISMEMBER myset1 world (integer) 0 5.SINTERSTORE 命令 1用法SINTERSTORE DESTINATION_KEY KEY1 KEY2 ... 2作用将给定集合之间的交集存储在指定的集合中。 3返回值返回存储交集的集合的元素数量。 4示例 redis SADD myset1 hello (integer) 1 redis SADD myset1 foo (integer) 1 redis SADD myset1 bar (integer) 1 redis SADD myset2 hello (integer) 1 redis SADD myset2 world (integer) 1 redis SINTERSTORE myset myset1 myset2 (integer) 1 redis SMEMBERS myset 1) hello 5场景实现共同好友、共同关注、关注推送等功能。 三、Redis集合(ZSet)数据类型的ZINCRBY、ZRANGE、ZREVRANGE、ZSCORE命令 1.ZINCRBY 命令 1用法ZINCRBY key increment member 2作用对有序集合中指定成员的分数加上增量increment · 可以通过传递一个负数值increment让分数减去相应的值 · 当key不存在或分数不是key的成员时ZINCRBY key increment member 等同于 ZADD key increment member · 当key不是有序集类型时返回一个错误 3返回值member成员的新分数值。 4示例 redis ZADD myzset 1 one (integer) 1 redis ZADD myzset 2 two (integer) 1 redis ZINCRBY myzset 2 one 3 redis ZRANGE myzset 0 -1 WITHSCORES 1) two 2) 2 3) one 4) 3 2.ZRANGE 命令 1用法ZRANGE key start stop [WITHSCORES] 2作用返回有序集中指定区间内的成员其中成员的位置按分数值递增(从小到大)来排序。 3返回值指定区间内带有分数值(可选)的有序集成员的列表。 4示例 redis ZRANGE Blog-Rank 0 -1 WITHSCORES 1) Blog-10 2) 1 3) Blog-1 4) 2 5) Blog-5 6) 3 3.ZREVRANGE 命令 1用法ZREVRANGE key start stop [WITHSCORES] 2作用返回有序集中指定区间内的成员其中成员的位置按分数值递减(从大到小)来排列。 3返回值指定区间内带有分数值(可选)的有序集成员的列表。 4示例 redis ZREVRANGE Blog-Rank 0 -1 WITHSCORES 1) Blog-5 2) 3 3) Blog-1 4) 2 5) Blog-10 6) 1 4.ZSCORE 命令 1用法ZSCORE key member 2作用返回有序集中成员的分数值。 如果成员元素不是有序集 key 的成员或 key 不存在返回 nil 。 3返回值成员的分数值以字符串形式表示。 4示例 redis ZRANGE salary 0 -1 WITHSCORES 1) tom 2) 2000 3) peter 4) 3500 5) jack 6) 5000redis ZSCORE salary peter 3500 四、示例代码 1.控制层 1UserController.java /*** 点赞* 同一个用户只能点赞一次再次点击则取消点赞若当前用户已经点赞则点赞按钮高亮显示*/ PutMapping(value like/{blogId}) ResponseBody CrossOrigin public T T like (PathVariable(blogId) Long blogId) {return userService.like(blogId); }/*** 排行榜* 查询点赞量最多的3篇博文*/ GetMapping(value blogTop) ResponseBody CrossOrigin public T T blogTop () {return userService.blogTop(); } 2.接口层 1IUserService.java T T like(Long blogId);T T blogTop(); 3.实现层 1UserServiceImpl.java private static final String BLOG_LIKED_KEY Blog-Liked-; private static final String BLOG_RANK_KEY Blog-Rank; private static final String BLOG_KEY Blog-;Autowired private StringRedisTemplate stringRedisTemplate;Override public T T like(Long blogId) {HashMapString, Object responseObj new HashMap();// 获取登录用户UserDTO userDTO RequestHolder.getUser();// 是否已点赞String key BLOG_LIKED_KEY blogId; // Blog-Liked-10String val userDTO.getPhone(); // 13800138000Boolean isMember stringRedisTemplate.opsForSet().isMember(key, val); // SISMEMBER Blog-Liked-10 13800138000if (BooleanUtil.isFalse(isMember)) {// 未点赞boolean isSuccess true; // 在数据库点赞表中新增/修改关于此博文的点赞状态为1if (isSuccess) {stringRedisTemplate.opsForSet().add(key, val); // SADD Blog-Liked-10 13800138000stringRedisTemplate.opsForZSet().incrementScore(BLOG_RANK_KEY, BLOG_KEY blogId, 1); // ZINCRBY BLOG_RANK_KEY 1 Blog-10}} else {// 已点赞boolean isSuccess true; // 在数据库点赞表中修改关于此博文的点赞状态为0if (isSuccess) {stringRedisTemplate.opsForSet().remove(key, val); // SREM Blog-Liked-10 13800138000stringRedisTemplate.opsForZSet().incrementScore(BLOG_RANK_KEY, BLOG_KEY blogId, -1); // ZINCRBY BLOG_RANK_KEY -1 Blog-10}}responseObj.put(code, 200);responseObj.put(success, true);return (T) responseObj; }Override public T T blogTop() {HashMapString, Object responseObj new HashMap();// SetZSetOperations.TypedTupleString set stringRedisTemplate.opsForZSet().rangeWithScores(BLOG_RANK_KEY, 0, -1); // ZRANGE Blog-Rank 0 -1 WITHSCORESSetZSetOperations.TypedTupleString set stringRedisTemplate.opsForZSet().reverseRangeWithScores(BLOG_RANK_KEY, 0, 2); // ZREVRANGE Blog-Rank 0 2 WITHSCORESSystem.out.println(blogTop :: set - set);ListHashMap list new ArrayList();for (ZSetOperations.TypedTupleString tuple : set) {HashMapString, Long map new HashMap();String key tuple.getValue();double score tuple.getScore();long val (long) score;map.put(key, val);list.add(map);}responseObj.put(code, 200);responseObj.put(success, true);responseObj.put(data, list);return (T) responseObj; } 五、其它相关知识点 1.stringRedisTemplate.keys(pattern)方法说明 1参数说明 - 匹配所有键* - 匹配以特定前缀开头的键prefix* - 匹配以特定后缀结尾的键*suffix - 匹配包含特定字符串的键*substring* - 匹配特定模式的键pattern? 2示例 // 查询所有key列表 SetString keys stringRedisTemplate.keys(*); System.out.println(blogTop :: keys - keys);// 查询点赞博文的key列表 SetString blogKeys stringRedisTemplate.keys(BLOG_LIKED_KEY *); System.out.println(blogTop :: blogKeys - blogKeys);
http://www.zqtcl.cn/news/826859/

相关文章:

  • 安徽教育云网站建设贾汪网站开发
  • 商业设计网站推荐用图片设置网站首页
  • 同ip网站有什么危害软文营销的特点有哪些
  • 用动易做的校园网站成品网站 免费试用
  • 没有网站做cpa怎么赚钱网站模板中企动力
  • 商会联盟网站建设方案免费的个人空间建网站
  • 徐州网站建设4个人网站设计师
  • 易企秀网站怎么做轮播图装饰设计公司wordpress主题
  • 网站建设搜索优wordpress the
  • 怎么做点图片连接网站北京大学网络服务
  • 家具制作网站台州网页设计公司
  • 优化网站 提高查询建设综合购物网站
  • 农产品网站设计方案湖南长沙网站建设公司
  • 网站过期查询服务器放网站吗
  • 郑州做网站的外包公司有哪些大连seo排名
  • 写小说的网站自己做封面2008年做的网站
  • 哈尔滨做网站哪家好强企业邮箱登录入口163
  • 网站点击率原因学php到做网站要多久
  • 哪里有创建网站的长沙网站seo技巧
  • 影楼公共网站wordpress提交360
  • 哪有做网站东莞中堂网站建设
  • 什么叫域名访问网站网络运营管理
  • 深圳网络推广网站泰安网站建设公司
  • 淄博网站建设铭盛信息如何注册一个app平台
  • 深圳网站的建设维护公司成功的网站必须具备的要素
  • wordpress主题站主题小型企业网站的设计与实现
  • 长沙专门做网站公司怎么进入网站管理页面
  • 做网站企业的发展前景东莞免费企业网站模板推广
  • 国外做锅炉的网站wordpress批量提交表单
  • 浙江省建设科技推广中心网站兼职做网站这样的网站