我是初学者在我的nodejs应用程序中使用redis-server我使用redis服务器作为我的应用程序的会话存储: var RedisStore = require('connect-redis')(express);var admin_session = express.session({ key: 'admin_token', st
var RedisStore = require('connect-redis')(express); var admin_session = express.session({ key: 'admin_token', store: new RedisStore({ host: 'localhost', port: 6379, db: 2 // pass: 'RedisPASS' }), secret: 'aersda@#$32sfas2342' });
这适用于单个实例.但是我的查询是针对aws elb提供的多个实例.
实际上我想将redis服务器作为一个集群,如果在任何实例中有任何可用的更改,则清除所有实例的会话并清除所有代码级缓存.
如果有可能,任何人都可以帮助我如何做到这一点,以及步骤是什么?
提前致谢,
维杰
如果在每个Web实例上运行redis服务器,则需要在负载均衡器上启用粘性会话.这将在您开始自动扩展之前正常工作:只要从池中删除了一个Web实例,任何在该实例上具有会话的人都将丢失它.
因此,您希望为缓存和/或会话运行共享的redis(或memcached)服务器.使用elasticache,您可以选择运行单个节点“集群”并使用标准的连接方式,或运行真正的集群并使用AWS库连接到它.
对于会话,我可能只使用单个节点而不用担心弹性缓存客户端.
如果要在部署时清除缓存,则必须使用挂钩并编写代码才能执行此操作.或者您可以简单地启动一个新的Elasticache服务器,更新您的配置,并销毁旧配置.