gpt4 book ai didi

database - 使用 Redis 作为唯一的主数据库

转载 作者:行者123 更新时间:2023-12-02 14:54:13 25 4
gpt4 key购买 nike

以下是使用 redis 的优点和缺点。

优点

  1. 事务(因为单线程)

缺点

  1. 不支持辅助 key

  2. 不支持重建索引

  3. 与 mongodb、dynamodb 不同,没有可靠的变更流

  4. 成本(由于所有数据都必须保存在内存中,我们需要越来越多的内存)

  5. 没有可靠的持久性。(PS 人们说rdb快照作为redis的备份存储,但帮助我理解当我们有12GB内存并且我们放入13GB数据时会发生什么。redis将只有12GB数据,但是如果使用rdb快照如果我用 20GB 内存启动另一个 Redis,它会保留我的所有数据还是 1GB 就永远消失了。这个机制有多可靠??)

  6. 无按键自动平衡。 (应用级分片是必须的)

考虑到上述优点和缺点,我只看到很少的用例可以将 Redis 作为唯一和主要数据存储。喜欢

  1. session 存储。

我错过了什么吗? 与 mongodb、mysql 等其他数据库相比,redis 缺少哪些额外功能(这里我只讨论生产就绪性和可靠性,而不是引发 nosql 与 sql 的争论:))。

最佳答案

Redis 实际上不是一个数据存储,也不是为了完成数据库(或者可能是文件系统)的设计目的。正如您正确指出的那样,如果您需要存储的信息超出 RAM 所能容纳的范围,那么像 Redis 这样的内存缓存解决方案就不再合适。尝试像使用数据库一样使用 Redis 的另一个大风险是,如果 Redis 出现故障,您将丢失所有状态。请注意,实际上可以将 Redis 配置为将定期快照保存到持久层(例如数据库)中。但即使在这种情况下,您的缓存在快照之间仍然容易受到攻击。为了解决这个问题,您可以增加数据库快照的频率,但在此限制下,您的 Redis 缓存将开始表现得更像数据库,而不是快速内存缓存。

那么 Redis 适合什么用途? Redis 可能适合存储应用程序 session 状态等内容。这往往是相当少量的信息,而且如果 Redis 宕机,也不会有太大的风险(也许在最坏的情况下,某些用户将不得不再次登录)。

关于database - 使用 Redis 作为唯一的主数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59136340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com