以编程方式快照redis需要哪些选项?

x33g5p2x  于 2021-06-08  发布在  Redis
关注(0)|答案(0)|浏览(175)

情景

我们将redis用于pub-sub,但我们也为redis存储本身中的每个键保存最后/最新发布的事件。为此,我们使用redis string set命令。

快照触发器

我们有一个静态的事件键列表,如果事件是针对其中一个键发布的,我们需要对redis的状态进行快照,它只不过是所有键及其最新发布的事件。

我们正在探索的选择

钥匙+mget
对redis进行keys调用以获取redis中存在的所有密钥(正如我前面所说的,我们可以预期此调用返回的密钥不超过5k,这一点很重要,因为keys调用是阻塞的,不建议对数百万个密钥执行)
使用这些键,进行mget调用并从redis检索值(可能会将其转储到postgress或任何其他db中,以便长期存储和查询)
PSU订阅
使用psubscribe订阅所有密钥,并在内存中保留所有最新事件的列表。一旦我们收到快照触发事件,我们就进行快照

注意事项

我们预计redis db在任何时间点的密钥都不会超过5k
在最坏的情况下,快照事件可能以2秒的间隔发生,因此快照的时间应该大约在500毫秒以下
我们可以预期,redis pub sub上每秒加载6k个事件
我们没有存储任务关键型数据,因此丢失一些事件是可以的
我想了解这些方法的优缺点,我也愿意接受任何其他建议。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题