微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nosql – Redis,分发还是不分配?

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

问题2:
Redis是否是分布式系统?当我使用google搜索关于redis的CAP属性时,它说Redis不是分布式系统,所以与CAP(P:Partition)http://www.quora.com/Redis/What-is-Redis-in-the-context-of-the-CAP-Theorem无关
但是从维基百科来看,它说它有一个主从架构,一个主人有很多奴隶
多么混乱

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

关于问题2,单个Redis实例不是分布式系统.它是一个远程集中商店.现在通过使用几个Redis实例,您可以构建一个分布式系统.因为这是一个自己动手的做法,您可以决定将其设为CP或AP系统.

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

您可以混合分片和主/从复制来构建所需的分布式系统.但是,Redis只提供了基本的砖块来做到这一点.特别地,它确实提供很少的处理弹性和HA(并且解决CAP定理中的P).单独的IMO,Redis sentinel还不足以支持HA Redis配置,因为它只涵盖角色管理.您需要与资源管理器进行补充,并将很多逻辑放入客户端/应用程序中.

目前正在开展一个名为Redis Cluster的项目,其目的是提供一个简约的即用型分布式系统,但仍然缺少很多东西,并且不可用于生产目的.

如果您需要一个现成的分销商店,Redis可能不是一个很好的选择.您将更好地由Cassandra,Riak,MongoDB,Couchbase,Aerospike,MysqL Cluster,Oracle Nosql等提供服务.但是,如果您要构建自己的专用系统,Redis一个很好的组件.

原文地址:https://www.jb51.cc/nosql/203333.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐