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一个很好的组件.

相关文章

校园网上订餐系统系统主要功能模块包括公告内容(公告栏、轮...
从今天开始,正式进入项目阶段。本次的项目是跟着黑马的瑞吉...
在可预见的将来,IT不会萎缩,只会越发展越庞大,最终会渗透...
vulntarget-b靶场最详细通关记录。
MongoDB是一个开源、高性能、支持海量数据存储的。
【NoSQL数据库技术与应用】课本代码、课后答案(持续更新)