首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis,是不是分布式的?

Redis,是不是分布式的?
EN

Stack Overflow用户
提问于 2013-08-22 17:33:27
回答 2查看 18.7K关注 0票数 32

问题1:我知道Redis会将所有数据加载到内存中,从而提高读写速度。那么,这是否意味着如果我的内存大小是2G,那么最大数据集大小不应该大于2G?现在我的数据库有了100G+数据,我的服务器内存不能超过32G,所以Redis不再适合我了?

问题2: Redis是不是分布式系统?当我使用google搜索Redis的CAP属性时,它显示Redis不是一个分布式系统,所以它与CAP没有任何关系。但是来自Wikipedia,它说它有一个主从架构,一个主有许多从。真让人迷惑。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-22 18:10:06

关于问题1,Redis是一个具有持久性功能的内存存储。你所有的数据集都应该放在内存中。因此,单个实例会受到服务器最大内存的限制。现在,您还可以将数据分片到多台服务器上运行的多个Redis实例。如果你有足够的预算,在一组Redis机器上存储100 on 1TB的数据是完全可能的。请注意,分片不是自动的:它必须由客户端或应用程序实现。它还对您可以对数据执行的操作施加了一些约束(例如,在服务器端不可能计算不同Redis实例托管的两个集合的交集)。

关于问题2,单个Redis实例不是分布式系统。它是一个远程集中存储。现在,通过使用多个Redis实例,您可以构建一个分布式系统。因为它是一种do方法,所以您可以决定将其作为CP或AP系统。

单个实例可以将其活动复制到从实例(因此最终与主实例一致)。应用程序可以选择始终连接到主设备以进行读写。在这种情况下,您可能会得到CP系统。它还可以在主服务器上写入,并从所有实例(包括从服务器)读取,因此您可以获得AP系统。我之所以说“可能”,是因为在Redis上构建这样的系统需要做一些重要的工作。

您可以混合使用分片和主备复制来构建您需要的分布式系统。然而,Redis只提供了基本的砖块来实现这一点。特别是,它对处理弹性和HA (并解决CAP定理中的P)提供的帮助很少。Redis sentinel本身不足以支持HA Redis配置,因为它只涵盖角色管理。您需要使用资源管理器对其进行补充,并将大量逻辑放入客户端/应用程序中。

有一个叫Redis Cluster的项目正在进行中,它的目的是提供一个最简单的、随时可用的分布式系统,但它仍然缺乏很多东西,还不能用于生产目的。

如果你需要一个现成的分布式存储,Redis可能不是一个好的选择。Cassandra,Riak,MongoDB,Couchbase,Aerospike,MySQL集群,甲骨文NoSQL等会更好地为你服务。但是,如果您想构建自己的专用系统,Redis是一个很好的构建组件。

票数 62
EN

Stack Overflow用户

发布于 2019-09-26 17:23:16

这是一个有用的链接,Redis集群教程

您还可以从使用memcache的Facebook解决方案中获益

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18376665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档