【问题标题】:Key-value store as primary database键值存储作为主数据库
【发布时间】:2014-11-02 22:38:57
【问题描述】:

我即将开始一个读写量大且频繁的项目,因此环顾四周,我发现内存数据库本身就是为此目的而设计的。再调查一点把我带到了redis。

Redis 看起来很酷(刚开始阅读,但需要了解很多)。但我主要只看到关系数据库,并根据元组和关系来考虑数据(我认为我可以随着时间的推移学习)。

我现在有以下问题:

  1. 我可以只使用 redis 来存储我的数据吗?
    • 我问的原因是我看到的每一篇文章都使用 Redis/memcached 作为缓存的中间层。
    • 我可以只依靠 redis 来持久化我的数据吗?
  2. 在哪里托管/运行 redis 数据库?
    • 由于 Redis 是内存数据库,它对主机的要求肯定会不同于需要更多处理的应用程序。拥有更多 RAM 的主机在这里肯定会更好。
    • 那么人们通常去哪里托管他们的数据库?
    • 来自 AWS 的 Elasticcaching,可用于托管 redis(作为主数据库,而不仅仅是缓存层)
  3. 任何资源?
    • 我总是问这个问题,我在网上找到了很多好的文档,但没有什么好的开始。如果您知道,请分享任何好的资源。

【问题讨论】:

  • The Redis website 通常是 Redis 文档的最佳位置。其中大部分内容是由 Redis 的创始人(Salvatore Sanfilippo,也称为 Antirez)编写的,他以非常清晰和公平的方式记录了这些内容,并且几乎没有营销废话。网站上有 a list of docs,特别是关于使用 Redis 作为您唯一的数据存储,请查看 redis.io/topics/persistenceoldblog.antirez.com/post/redis-persistence-demystified.html
  • 添加到@PaulD.Waite - 也请查看 Muut 的帖子:muut.com/blog/technology/redis-as-primary-datastore-wtf.html
  • @ItamarHaber:这是一个不错的案例研究。
  • 感谢大家的帮助,似乎喜欢使用内存数据库,因为只有数据存储需要很多风险管理,因此我正在考虑使用带有 mysql db 的 redis 备份选项。这是一个不错的选择,我也不知道如何管理这两个商店之间的数据。现在我正在考虑将数据异步推送到mysql。
  • 您认为什么是“大而频繁的”?如今,分片关系数据库的扩展性非常好。

标签: java database amazon-web-services redis amazon-elasticache


【解决方案1】:

我可以只使用 redis 来存储我的数据吗?

这取决于您的要求,但有 150 多个 NoSQL 数据库可用,我怀疑 redis 不是您唯一的选择。

我问的原因是我看到的每一篇文章都使用 Redis/memcached 作为缓存的中间层。

它比 JDBC 快,但你需要它更快吗?

我可以只依靠 redis 来持久化我的数据吗?

可以,这取决于您的可靠性要求。例如一些组织只信任传统的 RDBMS 数据库。注意:您需要在多台服务器上安装 redis 以防止出现故障。

在哪里托管/运行 redis 数据库?

随心所欲。

由于 Redis 是内存数据库,它对主机的要求肯定会不同于需要更多处理的应用程序。拥有更多内存的主机在这里肯定会更好。

我通常会将 NoSQL 实例放在同一台机器上。你给它的 RAM 量取决于你需要多少数据。

那么人们通常在哪里托管他们的数据库?

跨多个服务器以实现冗余,它们可以与应用程序共享。

来自 AWS 的 Elasticcaching,可以用来托管 redis(作为主数据库,而不仅仅是缓存层)任何资源吗?

我会问他们。

我总是问这个问题,我在网上找到了很多好的文档,但没有什么好的开始。如果您知道,请分享任何好的资源。

没有一种资源,因为没有一个答案。如果有,将会有 150 多个 NoSQL 数据库。

免责声明:我有另一个 NoSQL 键值存储,它在内存中和内存中一样持久化,并且速度更快(如果您需要这种东西)它也更易于使用/部署。 https://github.com/OpenHFT/Chronicle-Map

【讨论】:

  • 谢谢@peter,你的回答确实回答了我的很多问题。
  • 最后一件事,我目前正在使用 jdbc 作为主数据库构建我的应用程序,如果遇到性能问题,我将插入 redis。你认为它的方法正确吗?
  • @HarshitSyal 这是一个好方法。从最简单的解决方案开始,根据具体要求和措施优化性能。通常您可能会猜测以后可能是什么瓶颈,但通常这会成为第 5 或第 10 大瓶颈,花更多时间寻找和处理最重要的瓶颈会产生更大的影响。
猜你喜欢
  • 2017-04-25
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
  • 2015-02-16
  • 1970-01-01
  • 1970-01-01
  • 2013-09-02
  • 2012-03-09
相关资源
最近更新 更多