Redis系列七 - 实现排行榜功能-百姓标王

Redis系列七 - 实现排行榜功能

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis系列七 - 实现排行榜功能

1 前言

      实现一个排版榜,利用关系型数据库(mysql,oracle)的order by函数,就简单粗暴就撸出来了。但是这样真的优雅吗?


对于关系型数据库,order by不能充分利用索引的优势,会对所有数据进行排序,当数据达到百万级别,慢得会难以接受。而且数据库是最容易成为系统的瓶颈的。

      这个时候,内存数据库redis登场了,redis由于是纯内存操作,相对于传统关系数据库,有着不可思议的速度。


           

2 Redis的排行榜


Redis 提供了 sorted set 有序集合数据结构,高效的插入和删除性能,适用于需实时排序的场景。我们先抛开sorted set 的实现机制,先来尝试一下利用redis实现一个实时的排行榜系统。



2.1 ZADD 增加与修改

其时间复杂度为 O(M*log(N)), N 是有序集的基数, M 为成功添加的新成员的数量。如果key不存在就插入,存在就更新。


在这里插入代码片`zadd 排行榜名称 分数 玩家标识

zadd命令如果重复新增 排行榜名称和玩家标识相同,记录会被覆盖

所以我们使用zincrby实现新增用户的功能


使用如下:




redis> ZADD page_rank 10 google.com
http://google.com是value


2.2 ZRANK 查询

时间复杂度: O(log(N))


使用如下:

    redis> ZRANGE salary 0 -1        # 显示所有成员
    1) "peter"
    2) "tom"
    3) "jack"
    redis> ZRANK salary tom        # 显示 tom 的薪水排名,第二
    (integer) 1
    相关实践学习
    基于Redis实现在线游戏积分排行榜
    本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
    云数据库 Redis 版使用教程
    云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
    目录
    相关文章
    |
    3月前
    |
    存储 NoSQL PHP
    如何用Redis高效实现点赞功能?用Set?还是Bitmap?
    在众多软件应用中,点赞功能几乎成为标配。本文从实际需求出发,探讨如何利用 Redis 的 `Set` 和 `Bitmap` 数据结构设计高效点赞系统,分析其优缺点,并提供 PHP 实现示例。通过对比两种方案,帮助开发者选择最适合的存储方式。
    64 3
    |
    8月前
    |
    消息中间件 NoSQL Java
    Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
    Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
    278 0
    |
    8月前
    |
    缓存 NoSQL Java
    在 Spring Boot 应用中使用 Spring Cache 和 Redis 实现数据查询的缓存功能
    在 Spring Boot 应用中使用 Spring Cache 和 Redis 实现数据查询的缓存功能
    349 0
    |
    4月前
    |
    缓存 分布式计算 NoSQL
    大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
    大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
    50 2
    |
    4月前
    |
    SQL 分布式计算 NoSQL
    大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
    大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
    41 2
    |
    4月前
    |
    缓存 NoSQL Java
    Springboot自定义注解+aop实现redis自动清除缓存功能
    通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
    109 2
    |
    6月前
    |
    缓存 NoSQL 测试技术
    【Azure Redis 缓存】Azure Redis 功能性讨论三: 调优参数配置
    【Azure Redis 缓存】Azure Redis 功能性讨论三: 调优参数配置
    |
    6月前
    |
    存储 缓存 监控
    【Azure Redis 缓存】Azure Redis 功能性讨论二
    【Azure Redis 缓存】Azure Redis 功能性讨论二
    【Azure Redis 缓存】Azure Redis 功能性讨论二
    |
    7月前
    |
    存储 NoSQL Java
    Java中使用redis的bitMap实现签到功能
    这个实现示例提供了一种灵活、高效的方式,展示了如何使用Redis来解决现实中的问题。
    354 2

    相关内容推荐

    益阳网站优化费用多少开封官网网站优化价格濮阳家具行业网站优化推广有用吗东坑电子网站优化地址网站路径长短 优化网站优化到权重哪些网站可以优化推荐书籍网站关键词优化哪家不错云浮网站关键词优化方法网站后台生成优化服务行业网站优化专业公司上海网站优化推广出现问题网站做优化要花钱吗网站内容优化重要性学校优化哪个网站比较好唐山百度快速优唐山网站优化惠州网站优化流程网站推广策划书seo优化网站优化排名哪里的好吉林电子网站优化大全杭州网站优化有哪些企业网站优化的方式有哪些卫浴行业网站优化推广济南优化seo网站建设公司2019年网站优化前景怎么找服务行业网站优化兰州网站优化排名服务商州网宿迁无锡网站优化大沥网站优化赣州市网站优化平台泉州网站seo优化服务江北网站关键词优化方案seo基础优化教程视频网站铜仁网站优化好吗普洱网站优化哪个网站系统优化好点卡网站怎么优化关键字seo怎么优化个人网站天水网站优化哪家服务好二级出租网站怎么优化台山网站优化河东区网站优化价格长春seo网站优化多少钱网站怎么优化找搜程快排全面的网站整体优化方案长春网站设计优化方案泉州百度seo网站优化成都正规网站优化云浮seo网站排名优化软件网站外链的优化方法网站关键字优化案例如何做好seo网站优化的基础网页空间更换对网站优化影响怎么优化网站内链如何做好网站电商优化网站的方法在线网站优化多少钱南漳网站优化网站优化推广方式有哪些深圳搜索网站优化哪家好焦作网站优化厂家晋源网站优化怎么找网站优化经验芝罘智能营销网站优化公司网站优化软件排行网站如何优化实体电商网站建设推广网站优化代理教育培训网站优化营销杭州网站排名优化电话为什么企业需要做网站优化网站优化使用说明吴川市网站seo优化排名企业网站优化推广加盟网站怎么优化机遇云速捷坚固甘肃网站优化推广公司哪个好河东区网站优化价格云南网站优化推广哪家好网页如何优化权重网站网站自然优化排名收费模式深圳电器网站优化查询网站整站优化金手指下拉10兰州专业网站seo优化价格网站审查怎么优化门头沟企业网站优化哪家好耒阳网站关键词排名优化平台网站优化营销富顺优化网站小红书网站设计优化网站seo优化怎么提高网站是怎么做优化招聘网站的简历优化有用吗栖霞区seo网站优化php网站优化打开速度网站建设初期优化步骤武汉网站优化方案平台高邮网站优化哪家好大庆企业网站优化哪家有实力许昌新站网站优化网站SEO优化实例seo网站优化的优点郑州卫浴行业网站优化推广特点南昌高新网站seo优化郑州搜狗网站快速排名优化技巧罗湖哪里网站优化需要多少钱深圳网站优化咨询客服南陵企业网站优化推广曹县网站优化推广我国档案网站的优化金华网站建设方案优化渝中网站快速优化费用淄博张店如何做好网站优化排名正规网站优化服务网站域名优化皆选金手指21上海谷歌网站优化费用黄埔网站优化推广方案霸州网站排名优化网站结构优化的试验报告保定网站快照优化做优化的网站有什么要求象山专业网站优化六枝特区网站优化推广公司百度统计网站搜索引擎优化方案怎么给网站做百度优化如何优化网站选取火10星淮南pc网站优化网站域名选择与优化教案沾化网站seo优化排名网站更新对优化河源做网站优化网站各种优化能优化什么成都网站优化哪家效果好优化网站实施方案六要素关于网站文章的优化方法贵阳网站优化哪家快西湖区网站优化哪里好靖江优化网站哪家便宜免费网站优化广告企业官网网站优化机构网站快速被收录的优化方法网站链接结构优化包括哪些电脑网站优化方式行唐优化网站哪家好大港网站关键词优化方案人家网站是怎么优化的杭州有实力的教育行业网站优化上海涂光优化网站排名浙江网站关键词排名优化方案网站的优化价钱瓯海区seo网站内部优化网站上图片怎么优化海林网站怎么优化无锡壹叶网站优化济宁正规网站seo站内优化网站推广优化亻金苹果靠谱阝导航优化网站建设怎么优化视频网站西安市网站优化技巧淮南网站目标关键词优化网站的优化询问j火17星网站优化的完整流程番禺网站搜索优化网站做优化拥有云速捷稳妥河北网站排名优化服务潍坊安防网站建设优化优质服务广州网站优化常识南阳网站关键字优化邵阳网站建设优化企业网站排名优化哪家质量好石景山网站建设与优化沈阳网站优化服务宁波网站优化有哪些咨询网站优化郑州网站优化哪家厉害平顶山网站优化排名网站怎么优化间或云速捷力荐花都搜索引擎优化网站中心型企业优化网站罗湖官方网站优化计划网站性能监测与优化+下载合理优化网站排名吴江网站优化服务特殊网站怎么优化网站优化维护工作包括哪些安庆网站优化公司专门做网站优化服务南阳哪里有seo网站优化推荐金牛区网站优化多少钱沧县网站优化费用萝岗网站seo推广优化费用盐城工商网站优化是什么湖州网站关键词优化做竞价的网站有利于优化吗潍坊网站首页优化平谷网站优化推广公司北塘区网站推广优化开阳网站优化公司山东知名网站优化价格网站优化首页布局优化网站方法顶火22星来湛江优化推广网站泰兴网站优化公司哪家好

    合作伙伴

    百姓标王

    龙岗网络公司
    深圳网站优化
    龙岗网站建设
    坪山网站建设
    百度标王推广
    天下网标王
    SEO优化按天计费
    SEO按天计费系统