键值存储作为主数据库

问题描述 投票:0回答:2

我即将启动一个项目,其中读取和写入将是大量且频繁的,因此环顾四周,我发现内存数据库本身正是为此目的而创建的。经过进一步调查,我来到了 redis。

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

我现在有以下问题:

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

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

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

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

它比 JDBC 更快,但是您需要它更快吗?

我可以只依靠 Redis 来持久保存我的数据吗?

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

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

无论你喜欢哪里。

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

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

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

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

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

我会问他们。

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

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

免责声明:我有另一个 NoSQL 键值存储,它可以持久保存在内存中,并且速度要快得多(如果您需要这类东西),而且使用/部署也更简单。 https://github.com/OpenHFT/Chronicle-Map


0
投票

可以配置 Redis 持久性 RDB + AOF,使用该选项您可以使用 Redis 作为主数据库,但请注意,使用 RDB + AOF 将影响 Redis 的写入操作性能,并且可能会出现另一个映射您的问题内存中的数据到磁盘,反之亦然。

Redis 是内存存储,正如您所知,使其成为主要数据库存在一些障碍。您还可以尝试现成的解决方案,例如 AWS MemoryDB,它同时是可靠的数据库和 Redis。如果您无法使用这样的解决方案,我不建议您集中精力尝试仅将数据存储在 Redis 上,并通过常规的、易于理解的数据库来备份数据。

© www.soinside.com 2019 - 2024. All rights reserved.