今天,我将Redis集成到我的node.js应用程序中,并将其用作会话存储。基本上,在成功验证后,我将相应的用户对象存储在Redis中。
在身份验证后收到http请求时,我尝试使用哈希从Redis中检索用户对象。如果检索成功,则表示用户已登录,可以满足请求。
将用户对象存储在Redis中和检索在两个不同的文件中进行,因此我在每个文件中都有一个Redis客户端。
问题1: 在每个文件中拥有两个Redis客户端是否可以?或者应该只实例化一个客户端并在整个应用程序中使用它?
问题2: node-redis库是否提供显示连接客户端列表的方法?如果是,我将能够遍历列表,并在服务器关闭时为每个客户端调用client.quit()。
顺便说一下,这是我实现服务器“优雅关闭”的方式:
在身份验证后收到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()
返回的客户端? - verybadalloc