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

加强 网站群建设管理网站模板优势

加强 网站群建设管理,网站模板优势,风险网站怎么解决方案,成都旅游景点攻略自由行攻略前言 大白话介绍 Redis 五大基本数据类型之一的 ZSET 开发中常见的应用场景 ZSET 介绍 ZSET 与 SET 相同点#xff1a;都是是 String类型元素的集合#xff0c;且不允许重复的成员ZSET 与 SET 不同点#xff1a;ZSET 每个元素都会关联一个 Double 类型的分数#xff0c;Re…前言 大白话介绍 Redis 五大基本数据类型之一的 ZSET 开发中常见的应用场景 ZSET 介绍 ZSET 与 SET 相同点都是是 String类型元素的集合且不允许重复的成员ZSET 与 SET 不同点ZSET 每个元素都会关联一个 Double 类型的分数Redis 通过分数来为集合中的成员进行从小到大的排序。ZSET 的成员是唯一的,但分数 score 却可以重复 ZSET 应用场景 基于 ZSET 实现的滑动窗口限流直播间送礼物排名榜网易新闻、百度热搜实时新闻、文章类的需求 ZSET 常用 Redis 指令介绍 直接对着控制台简单实操一下方便大家理解。熟悉指令的读者可自行跳过本章节 zremrangeByScore 移除 key 为 ranking 且 source 值在 0,1 区间的所有数据返回结果是 3代表成功移除 3 条数据 zremrangeByScore ranking 0 1zcard 统计 key 为 ranking 中剩余元素的个数移除 3 条数据还剩一条因此返回结果是 1 zcard rankingzrevrangeByScore ZSET 分页查询LIMIT 对满足条件的成员列表进行分页。一般会配合 “inf” 或者 “-inf” 来表示最大值和最小值。这个最大最小值针对于 score 而言。 zrevrangeByScore ranking inf -inf LIMIT 0 2zincrby 没有当前成员则新增、有则修改分数 zincrby ranking 666 无名黑马zadd 往 ZSET 中添加元素 zadd ranking 5 王老五基于 ZSET 实现的滑动窗口 Lua 脚本 实现步骤 删除固定时间窗口之前的所有的数据统计剩余元素数量剩余元素数量超过设定阈值返回 0没超过返回 1 -- 1. 依赖 redis 中的 zset 类型zremrangeByScore命令含义移除0 到ARGV[1]的所有数据 redis.call(zremrangeByScore, KEYS[1], 0, ARGV[1]) -- 2. 统计剩余元素数量 local res redis.call(zcard, KEYS[1]) -- 3. 剩余元素是否超过阈值 if (res nil) or (res tonumber(ARGV[3])) then-- 4.没超过阈值 zaddredis.call(zadd, KEYS[1], ARGV[2], ARGV[4])return 1 elsereturn 0 endredis.call表示执行当前的 redis 指令比方说 redis.call(‘zremrangeByScore’, ‘ranking’, 0, 1) 等价于执行 zremrangeByScore ranking 0 1 这么一条命令。 Java 代码调用代码如下。 /*** unit秒内只能通过qps个请求*/public Object acquire(String key, Integer unit, String qps) {long now System.currentTimeMillis();Assert.notNull(unit, unit不能为 null);/*** --KEYS[1]: 限流 key* --ARGV[1]: 限流窗口String.valueOf(now - 1000 * unit)* --ARGV[2]: 当前时间戳String.valueOf(now)* --ARGV[3]: 阈值 qps* --ARGV[4]: score 对应的唯一valueString.valueOf(now)*/return redisTemplate.execute(redisScript,Arrays.asList(defaultKeyPrefix key),String.valueOf(now - 1000 * unit),String.valueOf(now),qps null ? defaultQps : qps,String.valueOf(now));}基于 ZSET实现的热搜文章 也是利用ZSET范围有序查询的特性实现现在初始化一波数据如下图先用 Redis 命令演示一波。后续用 Java 代码实现。 现在需要查最新的 2 条热点数据执行如下指令。由于 ZSET是有序集合且查询的结果默认是倒序输出因此最新的俩条数据就被查到了。结果如下 zrevrangeByScore article inf -inf LIMIT 0 2查第二页的数据怎么查记录每一次查询的最大值当做下一次查询的游标即可查到第二页数据。 zrevrangeByScore article 20231207 -inf LIMIT 0 2对应配套 java 代码 因为 Jedis 的 Api和原生 Redis 命令命名上很接近为了方便理解这里用 Jedis 实现。 Autowiredprivate Jedis jedis;private String RANKING_NAME ranking;private String LIVE_ROME liveRoom;private String ROOM_NAME 李佳琦的直播间;ApiOperation(热搜文章分页查询zrevrangeWithScores 分页查询 0-1 查全部)PostMapping(rankingList)public Result rankingList() {return Result.success(jedis.zrevrangeWithScores(RANKING_NAME, 0, -1));}ApiOperation(成员当前排名)PostMapping(pos/{member})public Result pos(PathVariable(member) String member) {return Result.success((jedis.zrevrank(RANKING_NAME, member) 1));}ApiOperation(刷礼物没有当前成员则新增、有则修改分数)PostMapping(weighting/{member}/{source})public Result pos(PathVariable(member) String member,PathVariable(source) String source) {jedis.zincrby(RANKING_NAME, Double.parseDouble(source), member);return Result.success(ok);}小结 ZSET 由于大家做的业务都不一样本文只提供实现热点文章排行榜的基本思路。 举2个常见的排行榜开发业务如下 一种是纯 Redis 实现的在线排行榜: 同学 A 做的是直播聊天室业务里面需要彰显榜一大哥实力因此需要搞个在线的排行榜并且还要实现刷礼物、在线人数新增记录、在线人数统计、排名这些需求为了提升性能完全就可以用Redis 做数据库。所有操作基于 Redis 完成至于结果数据的持久化的话只需在直播间关闭的时候将数据落库到 Mysql 或者 Oracle 即可。之前写过一个聊天系统在线人数统计就是每新开一个 Scoket 的时候人数加 1我就是这么干的。具体业务不多 bb。 还有一种是通过定时刷新实现的非实时排行榜 同学 b 的公司不是查实时排行榜而是通过定时刷数据库同步数据到 redis 中实现的。 小咸鱼的技术窝 关注不迷路分享更多技术干货B站、CSDN、微信公众号同名小咸鱼的技术窝更多详情在主页
http://www.zqtcl.cn/news/735572/

相关文章:

  • 外贸网站排行榜前十名电影网站标题怎么做流量多
  • 网站建设吉金手指专业13网站备案完成后不解析
  • 社保网站减员申报怎么做长春建筑网站
  • 网站开发用原生wordpress读者墙
  • 食品网站网页设计成都建网页
  • 网站建设 珠海专业团队表情包张伟
  • 建设铝合金窗网站.net制作网站开发教程
  • 网站后台服务器内部错误wordpress 多级菜单
  • 怎样更新网站内容怎么查看网站是哪家公司做的
  • 建设网站网站建站建立一个网站平台需要多少钱
  • 学校网站模板 html网站建设技术路线
  • 图片网站如何做百度排名深入挖掘wordpress
  • 网站建设的前景网站建设分为哪三部分
  • 房地产公司网站下载校园二手信息网站建设
  • 有关网站空间不正确的说法是设计和建设企业网站心得和体会
  • 个人网站前置审批项怎么做投票 网站
  • 网站建设零金手指花总js源码下载从哪个网站能下载
  • 网站开发属于无形资产两人合伙做网站但不准备开公司
  • 五大类型网站网站建设投标文件
  • 崇明区建设镇网站装修公司网站制作
  • 哪些网站可以做房产推广呼家楼街道网站建设
  • 微网站怎么开通萝岗手机网站建设
  • 牙科医院网站开发内江市住房和城乡建设局网站电话号码
  • 网站建设的想法和意见芜湖的网站建设公司
  • 效果好的网站建设wordpress主题基础
  • html5建设摄影网站意义crm免费客户管理系统
  • win2008 建立网站网站策划书的撰写流程
  • 德泰诺网站建设百度网盘资源搜索引擎入口
  • 谁能给个网站谢谢wordpress 主题 后门
  • 学校网站建设目的seo教学免费课程霸屏