【发布时间】:2014-01-20 14:47:09
【问题描述】:
今天,我将 Redis 集成到我的 node.js 应用程序中,并将其用作会话存储。基本上,在成功验证后,我将相应的用户对象存储在 Redis 中。
当我在身份验证后收到 http 请求时,我尝试使用哈希从 Redis 检索用户对象。如果检索成功,则意味着用户已登录并且可以满足请求。
将用户对象存储在 Redis 中和检索发生在两个不同的文件中,因此我在每个文件中都有一个 Redis 客户端。
问题 1: 可以有两个 Redis 客户端,每个文件中一个吗?还是应该只实例化一个客户端并在应用程序的所有区域使用它?
问题 2: node-redis 库是否提供了显示已连接客户端列表的方法?如果是这样,我将能够遍历列表,并在服务器关闭时为它们中的每一个调用 client.quit()。
顺便说一句,这就是我实现服务器“正常关闭”的方式:
//Gracefully shutdown and perform clean-up when kill signal is received
process.on('SIGINT', cleanup);
process.on('SIGTERM', cleanup);
function cleanup() {
server.stop(function() {
//todo: quit all connected redis clients
console.log('Server stopped.');
//exit the process
process.exit();
});
};
【问题讨论】:
-
客户端,你的意思是连接?还是
redis.createClient()返回的客户端? -
哦,是的,连接。基本上,“client = redis.createClient();”
标签: javascript node.js redis node-redis