键值存储作为主要数据库

3

我即将开始一个项目,其中读写操作会非常频繁和大量,因此我发现内存数据库正是为此目的而制作的。通过进一步调查,我找到了Redis。

Redis似乎非常酷(我刚刚开始阅读,还有很多要了解)。但我主要只看到关系型数据库,并且从元组和关系的角度考虑数据(我认为我可以随着时间学习这个)。

我现在有以下问题:

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

2
Redis网站通常是Redis文档的最佳来源。其中很多内容都是由Redis的创始人Salvatore Sanfilippo(也称为Antirez)编写的,他以非常清晰和公正的方式记录了这些内容,并且没有太多的营销噱头。该网站上有一个文档列表,特别是关于将Redis用作唯一数据存储的内容,请查看http://redis.io/topics/persistence和http://oldblog.antirez.com/post/redis-persistence-demystified.html。 - Paul D. Waite
2
除了@PaulD.Waite的建议外,还可以看一下Muut的帖子:https://muut.com/blog/technology/redis-as-primary-datastore-wtf.html - Itamar Haber
@ItamarHaber:这是一个不错的案例研究。 - Paul D. Waite
感谢大家的帮助。似乎仅使用内存数据库作为唯一数据存储需要进行大量风险管理,因此我正在考虑使用以mysql数据库为后备的redis选项。这是一个好选择吗?另外,我不知道如何在这两个存储之间管理数据。目前,我正在考虑异步将数据推送到mysql。 - Harshit Syal
你认为什么是“大而频繁”的?在当今,分片关系型数据库的扩展能力非常强。 - David Ehrmann
1个回答

4
我可以只使用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,你的回答解答了我很多问题。 - Harshit Syal
最后一件事,我目前正在使用JDBC作为主要数据库构建我的应用程序,如果遇到性能问题,我将插入Redis。您认为这是正确的方法吗? - Harshit Syal
@HarshitSyal 这是一个很好的方法。从最简单的解决方案开始,并根据具体要求和措施进行性能优化。通常情况下,您可能会猜测稍后可能会出现瓶颈,但通常这会变成第5或第10个最大的瓶颈,花更多时间寻找并处理排名前几位的瓶颈将产生更大的差异。 - Peter Lawrey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接