redis在实际游戏中缓存数据实战

1)redis服务器

var redis = require("redis");

var client = null;

exports.connect = function (config) {
    client = redis.createClient({
        host: config.host,
        port: config.port,
        db: config.db,
    });
    console.log("cityRedis is running");
    client.on("error", function (err) {
        console.log(err);
    });
};

exports.setResources = function (key, resourcesInfo, callback) { //存储用户资源
    if (client === null) {
        console.log("client is null from cityRedis");
        return;
    }

    client.hmset(key, resourcesInfo, function (err) {
        if (err) {
            console.log(err);
            callback(false);
        } else {
            callback(true);
        }
    });

    client.hgetall(key, function (err, obj) {
        console.log("type:", obj.type);
    });
};

2)使用

var key = "t_resources" + "_" + userid + "_" + rows[i].type; //写入内存数据库
                cityRedis.setResources(key, rows[i], function (flag) {
                    if (flag) {
                        console.log("flag is  true");
                    }
                })

总结:

redis: 缓存
  缓存内容,一般是键值对的形式:

  key(t_resources_391_food) -->

  value-->
  {
    id:397,
    userid: 391,
    type: food,
    count:0.7,
    allCount:225,
    addRate:5.5,
    updateTime:1515140858,
    nowCount:225
  }

  也就是说:键是一个有意义的字符串(uid等拼接起来),值是:一个obj类型的对象序列化后的字符串

你可能感兴趣的:(【redis】)