如何使用node.js和redis在多个集群中只运行一次flushall?

oogrdqng  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(349)

在服务器启动时,我需要清除redis内存。但每当一个新的集群形成时,它就会调用flushall并清除内存中的所有内容。如何从第一个服务器开始只运行一次flushall?
主人

//run when the first server starts
If(first server){
    redis.flushall();
}
 //run code

其他单独的集群(在不同的端口/脚本上运行)

//run when the first server starts
If(first server){//should be false now
    redis.flushall();
}
 //run code

概述

Server 1 -- call flushall once (clean Redis memory)
Server 2 -- dont call flushall
Server 3 -- dont call flushall
...
Server n -- dont call flushall

有没有办法做这种事?
顺便说一下,我使用的是aws托管,它可以自动复制和扩展我的服务器

g6ll5ycj

g6ll5ycj1#

您可以考虑让每个单独的nodejs进程询问其共享redis服务器当前的时间。

let redisTime
redisConnection
    .timeAsync()
    .then ( timedata => {
       redisTime = timedata[0]
     })

这是一种无需向redis推送值即可获得所需内容的方法。

相关问题