正在学习使用pomelo开发游戏服务器,碰到node.js操作redis,记录一下
假设应用场景是操作一个用户表的数据
引入node_redis库,创建客户端
var redis = require("redis"); var client = redis.createClient();
创建用户数据
var players = new Array(); players.push({"id":49, "name":"test player11","vip":12,"rmb":23,"psd":"password1234"}); players.push({"id":932, "name":"test player12","vip":11,"rmb":23,"psd":"password1234"}); players.push({"id":936, "name":"test player13","vip":10,"rmb":23,"psd":"password1234"}); players.push({"id":626, "name":"test player14","vip":9,"rmb":23,"psd":"password1234"}); var player; client.get('uidx', function (err, uidx) { for(var i = 0; i < players.length; ++i) { client.incr('uidx'); uidx++; player = players[i]; client.hmset("user:"+ uidx, player , function (err) { }); // client.hmset("user:"+ uidx // ,'userId', player.id // ,'username',player.name // ,'password', player.psd // , function (err) { // }); client.hmset("userId:"+ player.id ,'uidx', uidx , function (err) { }); } });
根据玩家编号查询
var playerID = 49; client.hget('userId:'+ playerID, 'uidx', function(err, uidxQuery){ if (err) { console.log(err); return; } else { //client.hget('user:'+ uidxQuery, 'username', function (err, username) { client.hgetall('user:'+ uidxQuery, function (err1, user) { if (err1) { console.log(err); return; } else { if (user) { console.log(user.username); } else { console.log("no user id is " + playerID); } } }) } });
根据玩家编号更新数据
var playerID = 49; var player = {"id":49, "name":"angle","vip":81,"rmb":41,"psd":"waitforu"}; client.hget('userId:'+ playerID, 'uidx', function(err, uidx) { if (err) { console.log(err); return; } else { client.hmset("user:"+ uidx, player, redis.print); } });
根据玩家编号删除数据
var playerID = 49; client.hget('userId:'+ playerID, 'uidx', function(err, uidx) { if (err) { console.log(err); return; } else { client.del("user:"+ uidx); client.del('userId:'+ playerID); } });