跨服排行榜

游戏里为了刺激玩家的攀比心理,经常有各种各样的排行榜。排行榜又可以分为本服排行榜以及跨服排行榜。

简单说来,本服排行榜上的记录来自本服的玩家,而跨服排行榜上的记录是来自所有服务器前N名玩家。通常,跨服排行榜含金量更大,奖励也更为丰富。从技术上而言,实现起来也更为麻烦。

典型地,实现跨服排行榜有一下几种思路。

  • 取其中某个服务器作为中心服,用来收集各服排行榜数据并进行广播;
  • 使用独立进程,例如web后台,向各个服务拉取排行榜数据;
  • 利用Redis的SortedSet,由Redis自己实现排序

本文详细介绍如何使用Redis实现跨服排行榜

Redis集群的简单用法

Redis是一个Key-Value的缓存数据库。这里不做过多介绍。为了提高IO效率,最新的Redis支持集群服务。官方的Redis是不支持Windows环境,所以本文开发环境是在Linux Ubuntu上。Redis的java客户端实现是Jedis。下面的对RedisCluster的简单封装,包括对Redis的各种数据操作。

public  enum RedisCluster {INSTANCE;private JedisCluster cluster;public  void init() {String url = "127.0.0.1:8001";HashSet<HostAndPort> hostAndPorts = new HashSet<>();String[] hostPort = url.split(":");HostAndPort hostAndPort = new HostAndPort(

游戏服务端框架之使用Redis实现跨服排行榜相关推荐

  1. 游戏服务端框架之本服实时排行榜

    目录 设计背景 知识储备 数据结构封装 排行榜设计 设计背景 在游戏服务端框架之使用Redis实现跨服排行榜这篇文章里,讲述了如何使用Redis设计一个全服排行榜工具. 本文主要介绍如何实现一个本服的 ...

  2. Go游戏服务端框架从零搭建(一)— 架构设计

    本教程以Go语言分区游戏服务端框架搭建为例. Go语言是Google开发的一种静态强类型.编译型.并发型.具有垃圾回收功能的编程语言.语法上近似C语言,支持接口.可通过struct包含另一个struc ...

  3. java游戏服务端框架之跨服匹配服

    如今的手游世界,如果没搞个跨服赛事,都不好意思说它是一个手游了. 说到跨服,就不得不说下匹配服了.比如一个跨服天梯赛事,需要满足不同服的玩家能够同屏PK.为了能够把实力接近的玩家作为对手,我们需要一个 ...

  4. python和cc++哪个适合做游戏_分享一个C++与Python开发的中小型通用游戏服务端框架(跨平台,开源,适合MMORPG游戏)...

    在开发一款游戏项目时,在立项时我们往往会考虑或者纠结很多,比如: 1,对于开发来说:服务端和客户端应该选择什么语言?用什么协议通信才更效率?协议后期如何维护?socket是用长连接还是短连接?tcp还 ...

  5. 手游服务端框架之自定义orm持久化工具

    前面一篇文章手游服务端框架之关于玩家数据的解决方案,介绍了当今游戏服务端对玩家数据进行持久化的两种方案.一种是将玩家数据通过json等格式统一打包成字符串或二进制流:另一种是根据模块功能拆分,一个模块 ...

  6. 顶级 Swift 服务端框架对决 Node.js

    本文讲的是顶级 Swift 服务端框架对决 Node.js, 前言 最近我在做服务端 Swift 工作时,我被问到这样的问题: 「在服务端 Swift 能否击败 Node.js?」 Swift 是一个 ...

  7. 项目实训-千寻-服务端框架搭建

    1.项目创建 服务端的开发工具,自然是选用Intellij IDEA了.新建项目,选择WebApplication.记得勾选create web.xml复选框.然后,基本就是一路"下一步&q ...

  8. Unity【Multiplayer 多人在线】- Socket 通用服务端框架(七)、时间戳和心跳机制

    介绍 在阅读了罗培羽著作的Unity3D网络游戏实战一书后,博主综合自己的开发经验与考虑进行部分修改和调整,将通用的客户端网络模块和通用的服务端框架进行提取,形成专栏,介绍Socket网络编程,希望对 ...

  9. 手游服务端框架之后台管理工具

    后台管理工具在游戏运营中的作用 手游版本的更新迭代是非常频繁的,有些项目甚至每个星期都会进行停服更新.也就是说,对于生产环境的游戏进程,我们必须有工具能够对游戏服务进行维护.例如更新维护,或者对游戏内 ...

最新文章

  1. 机械加工工艺师手册_机械加工工艺师——机床应用篇
  2. rxjs里subscribeToArray的一个JavaScript模拟实现
  3. 虚拟化运维工具对金融行业的解决方案
  4. ABP VNext实践之搭建可用于生产的IdentityServer4
  5. c语言switch为什么要加break,c语言学习笔记 switch case语句为什么要加break
  6. 《动手学深度学习》 第二天 (自动求梯度)
  7. C Tricks(三)—— 以一维数组的形式对二维数组赋值
  8. StringTokenizer字符串分解器
  9. 美团面试-2016校园招聘
  10. 一文排除R语言热力图所有的坑
  11. 神秘的古文明 ———— 埃及文化
  12. 三角形周长最短问题_什么样的三角形周长最短
  13. 设计模式学习总结系列应用实例
  14. flash loader下载使用说明
  15. 如何找国外作者的matlab,如何与外国学者用电子邮件联系(索要论文或者代码)...
  16. 可视化|历届奥运会数据可视化
  17. 表妹想学编程,我给她看了一张图,看完后她说还是算了吧,不学了
  18. 转:微软COFEE工具近日泄漏到网上
  19. IBM Storwize V3500存储配置
  20. 运动控制卡应用开发教程之激光振镜控制

热门文章

  1. word文档加密漏洞破解方法详解
  2. 数据结构之 二叉树的存储和遍历总结
  3. 最新源码交易网系统HTML源码(可商用)
  4. 普通话-命题说话21-30
  5. Win7 提示“请考虑更换电池”
  6. 无人机三维建模的优势有哪些?
  7. 万能通用的各大网站(全民简历、简历本等) 简历模板 -- 免费下载方法
  8. 南大通用GBase8s 常用SQL语句(120) DISCONNECT 语句
  9. JAVA画色盲图_一个色盲竟然能画出这么精美的色彩...
  10. kafka —— consumers 消费者 group 找不到得原因