【问题标题】:Save data to memory and after some time save them to DB将数据保存到内存并在一段时间后将它们保存到数据库
【发布时间】:2014-03-30 19:44:48
【问题描述】:

请提前接受我的道歉,因为这可能是一个愚蠢的问题。但是……

我正在做一些实时推荐系统的工作。有诸如概率、奖励及其时间历史(通过某些时间戳或类似的东西)之类的数据要存储。我需要首先将它们存储在内存中,并在一段时间后(每隔一小时定期)存储到数据库中(如果发生一些服务器错误,以便轻松恢复),所以我试图找到一些可以使用的技术,我找到了 Redis 和 Cassandra。但我现在有点困惑。

我认为可能有这个解决方案:

将数据存储在 RAM 中(通过 Redis ......更准确地说是通过一些 Redis 客户端库),然后运行一些 crone,它将从内存中获取这些数据并将它们存储到某个数据库(可能是 NoSQL?哪个?).. . 因为我认为我不能直接用 Redis 做到这一点。

这种方法可以吗?或者你有其他解决方案吗?

【问题讨论】:

  • 您确定要使用附加数据库吗?你检查过redis.io/topics/persistence吗?
  • 我之前没有检查过您的链接...但它看起来很有趣。我的目标也是时间的可视化(概率的演变),所以我需要通过时间戳来获得一些历史记录......我不确定这是否可以通过 Redis 持久性(通过一些快照或 AOF)来实现
  • 如果将时间戳转换为整数并在Sorted Set 中使用,则可以使用它们。然后您可以按日期等排序。
  • 好不好看你的情况。如果 redis 足够的话,我宁愿不添加其他技术。如果它适合你,那么听起来不错。
  • 同意@Agis,您应该会看到 REDIS 持久性以及用于管理数据的 MASTER -SLAVE 设计模型。

标签: nosql redis cassandra key-value


【解决方案1】:

Redis do 提供了两个持久化选项。我强烈推荐阅读documentation about them

如果您想将其他数据库用作备份存储,也许您最好只使用 Redis 为您提供的功能,而不是在您的堆栈中添加其他技术。在任何情况下,您都应该分析两者并找到更适合您的。

也就是说,如果您需要更高的耐用性,您可能应该更好地使用 AOF

【讨论】:

    猜你喜欢
    • 2017-06-16
    • 2010-11-29
    • 2012-07-28
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多