目前,我有下面的代码,用Node.js的工作,socket.io和Redis的:节点退出时,干净地断开与Redis的连接?
var io = require('socket.io'), redis = require("redis"), client = redis.createClient();
io.sockets.on('connection', function (socket) {
var socket_id = socket.id;
socket.on('chat', function(data) {
client.set('user:' + socket_id, data['colour']);
// The user left the page. Remove them from Redis.
socket.on('disconnect', function() {
client.del('user:' + socket_id);
client.quit();
});
});
});
也能正常工作正常的插座连接和断开,但似乎如果节点宕机是一个问题,或者如果我只是重新启动节点作为正常发展的一部分。
关键不会从Redis中删除。因此,存储在Redis数据库中的条目数量逐渐增加并增长。我也不确定Redis客户端是否干净地存在。
当节点退出以及套接字断开连接时,如何清理Redis条目并退出Redis客户端?