【问题标题】:Use Redis as primary database in Rails app在 Rails 应用程序中使用 Redis 作为主数据库
【发布时间】:2017-09-15 03:52:27
【问题描述】:

您好,我是 Redis 的新手。我正在尝试使用 Redis 作为我的主数据库,而不是 Rails 默认提供的 sqlite。我尝试了足够的谷歌搜索,但找不到相关的东西。如何做到这一点?或者如果我错了,我们是否可以在 Rails 应用程序中使用 Redis 作为主数据库?

谢谢

【问题讨论】:

标签: ruby-on-rails database redis


【解决方案1】:

通常您会使用像 https://github.com/nateware/redis-objects 这样的库。正如它的自述文件所说,它不仅仅是存储 ActiveRecords 的另一种方式,因为如果你想要的只是 ActiveRecords,你也可以保持简单并使用 MySQL 或 Postgres。取而代之的是,redis-object 将允许您按照预期使用 Redis 数据结构。

这不是 ORM。将 ORM 包裹在 Redis 周围的人没有抓住重点。

Redis 的杀手级特性是它允许您对单个数据结构(如计数器、列表和集合)执行原子操作。原子部分是巨大的。使用检索“记录”的 ORM 包装器,更新值,然后将这些值发回,消除原子性,从而切断 Redis 的主要优势。就用 MySQL 吧?

您也可以只安装 Redis gem 并自己调用 Redis,但这种低级编程在很大程度上会破坏使用像 Rails 这样强大的框架的目的。

【讨论】:

    【解决方案2】:

    知道了。 Redis 不能用作主数据库,因为它是内存中键值存储。如果内存发生了什么事怎么办?数据不持久。

    【讨论】:

    • 这个答案实际上并不正确。默认情况下,Redis 将数据集的快照保存在磁盘上的一个名为 dump.rdb 的二进制文件中。如果数据集中至少有 M 次更改,您可以将 Redis 配置为每 N 秒保存一次数据集,或者您可以手动调用 SAVE 或 BGSAVE 命令。source link
    • 谢谢@erginduran
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 2019-04-07
    • 2012-08-17
    • 1970-01-01
    • 2020-03-26
    • 2011-06-02
    相关资源
    最近更新 更多