加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 13:31:41 所属栏目:百科 来源:网络整理
导读:问题1: 我知道Redis将所有数据加载到内存中,从而提高了读/写速度,所以如果我的内存大小是2G,那么最大数据集大小不应该大于2G?现在我的数据库有一个100G的数据,我的服务器的内存不能大于32G,所以Redis不再适合我吗? 问题2: 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是一个很好的组件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读