redispvpranking[redis实现的游戏内pvp活动排行榜] npm
发布于 8 年前 作者 NextZeus 4173 次浏览 来自 分享

nodejs + redis [实现游戏内的pvp排行榜排行]

做过两次pvp排行榜 自己想着还是写一个npm吧,以后再写pvp的时候,直接使用就好了。 NPM

var ranking = require('../index');
var config = require('./config.json');
var rankingManager = new ranking(config);
console.log('rankingManager-->>',rankingManager);
var async = require('async');
 
async.waterfall([
    function (cb) {
        rankingManager.getTopRanking(10, function (err,data) {
            console.log('get top ranking->',err,data);
            cb();
        });
    },
    function (cb) {
        rankingManager.addToRanking('robot_3', function (err,data) {
            console.log('add to ranking ->',err,data);
            cb();
        });
    },
    function (cb) {
        rankingManager.getTopRanking(10, function (err,data) {
            console.log('get top ranking->',err,data);
            cb();
        });
    },
    function (cb) {
        rankingManager.changeRankingOfTwoPlayer('robot_1002','robot_1001', function (err,data) {
            console.log('change ranking ->',err,data);
            cb();
        });
    },
    function (cb) {
        rankingManager.getTopRanking(10, function (err,data) {
            console.log('get top ranking->',err,data);
            cb();
        });
    }
], function (err) {
    console.log(err);
});
7 回复

key改了一个名字不傻眼了啊

@lengc 我这里只是一个例子,所有用到的key都可以自己去配置

不知不觉已经有不少人下载了, 昨天看到有个提问,考虑用mongodb做排行榜的,我想如果是全服做排序的话, 一个服务器有可能高达几千人,时时的排序来说,mongodb数据库去做排序,我想对数据库本身的压力还是很大的吧 。find , update ,find , update ,

@NextZeus 用mongodb做排行榜的——这有什么问题吗?

@winglight 我是这么想的,Redis本身也是数据库,但是它有个ZSET数据结构, 有序集合, 我只需要zadd 更新个人排行,zrangebyscore获取个人排行, 排序的逻辑自己就不需要去处理。 简洁方便。 用mongodb, 说实话,刚开始就没想过去用它做排行榜。 具体有什么问题吗, 我就不晓得了。

也分享一个一直使用的排行榜 其实排行榜逻辑很简单 https://gist.github.com/chenshuo/1966839 做成npm包然后不借助外部存储,然后做成服务,数据有binlog进行恢复和定时持久化。

回到顶部