我在哨兵模式下运行Redis,发生过很多次我在Redis中写入数据,但是在读取相同的键时却没有得到期望的值。
我想知道是否有可能在写数据时将其写在Master上,而在读数据时将其传递给Slave,但是由于Redis中的Replication本质上是异步的,因此不会更新所有Slave,因此我没有获取更新值/有效值。
我正在使用redisson客户端和三台服务器进行哨兵配置。
答案 0 :(得分:1)
不可能。为了克服这个问题,您可以选择以下选项:
(async () => {
// Create a cluster with 2 workers
const cluster = await Cluster.launch({
puppeteerOptions: {
headless: false,
},
concurrency: Cluster.CONCURRENCY_CONTEXT,
maxConcurrency: 2,
});
// Define a task (in this case: screenshot of page)
await cluster.task(async ({ page, data: url }) => {
await page.goto(url);
const path = url.replace(/[^a-zA-Z]/g, '_') + '.png';
await page.screenshot({ path });
console.log(`Screenshot of ${url} saved: ${path}`);
});
// Add some pages to queue
cluster.queue('https://www.google.com');
cluster.queue('https://www.wikipedia.org');
cluster.queue('https://github.com/');
// Shutdown after everything is done
await cluster.idle();
await cluster.close();
})();`
的配置参数设置为readMode
MASTER
的情况下使用RBatch
对象