美文网首页
redis实战之使用redis实现排行榜(转)

redis实战之使用redis实现排行榜(转)

作者: 忘忧谷主 | 来源:发表于2017-04-25 10:06 被阅读0次

设想在一个游戏中,有上百万的玩家数据,如果现在需要你根据玩家的经验值整理一个前20名的排行榜,你会怎么做呢?

一般的做法是写一条类似下面这条sql语句的方式来获取:

这种方式在数据量较小的情况下可行,但是在数据量大的情况下查询速度将变慢,特别是还需要联表查询时,速度下降的就更明显了。

这时你可以考虑使用redis来实现这个功能。

实现这个功能主要用到的redis数据类型是redis的有序集合zset。zset 是set 类型的一个扩展,比原有的类型多了一个顺序属性.此属性在每次插入数据时会自动调整顺序值,保证value值按照一定顺序连续排列。

主要的实现思路是:

1、在一个新的玩家参与到游戏中时,在redis中的zset中新增一条记录(记录内容看具体的需求)score为0

2、当玩家的经验值发生变化时,修改该玩家的score值

3、使用redis的ZREVRANGE方法获取排行榜

实现代码:

functions.php

iredis.php

index.php

执行结果:

相关文章

  • redis实战之使用redis实现排行榜(转)

    设想在一个游戏中,有上百万的玩家数据,如果现在需要你根据玩家的经验值整理一个前20名的排行榜,你会怎么做呢? 一般...

  • Redis备要

    书单:《 Redis的设计与实现》《Netty、Redis、Zookeeper高并发实战》 1. Redis是什么...

  • Redis分布式操作-redisson的使用

    redis几种java客户端比较 redis几种加锁的实现 redis客户端redisson实战

  • Redis入门

    内容来自Redis实战(Redis in Action)。 一、介绍 Redis 是一个开源的使用 ANSI C ...

  • 掌握Redis和源码,技术专家经典作品.相信可以助你成为高级开发

    《Redis实战》 如果您正在寻找关于Redis实践的书籍,那么《Redis实战》就是你的不二之选。在320页的书...

  • Redis 学习笔记(一) 常见问题

    本文主要内容转自:分布式之redis复习精讲 1、为什么使用redis 使用Redis主要是出于两个原因:性能和并...

  • 读书笔记

    《系统之美》 《重构》 《Redis 实战》 《Effective Java》 《Spring Boot实战》 《...

  • redis 集群搭建

    Redis集群 使用redis做缓存工具 实现系统高可用,redis需要做主备。使用redis做分片集群。 向业务...

  • 22.Redis

    在项目开发中redis的使用也比较频繁,本文介绍了Go语言中go-redis库的基本使用。《Redis 实战》 R...

  • Redis实现分布式锁

    Redis实现分布式锁 一、Redis单节点实现 (一) 获取锁 使用 Redis 客户端获取锁,向Redis发出...

网友评论

      本文标题:redis实战之使用redis实现排行榜(转)

      本文链接:https://www.haomeiwen.com/subject/tfbczttx.html