Redis 集群应用学习

Redis 集群应用学习

ID:42625710

大小:76.06 KB

页数:15页

时间:2019-09-19

Redis 集群应用学习_第1页
Redis 集群应用学习_第2页
Redis 集群应用学习_第3页
Redis 集群应用学习_第4页
Redis 集群应用学习_第5页
资源描述:

《Redis 集群应用学习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器节点,来降低单节点服务器的压力。上一篇我们讲到了Redis的主从复制技术,当实现了多节点的master-slave后,我们也可以把它叫做集群,但我们今天要讲的集群主要是利用切片技术来组建的集群。集群要实现的目的是要将不同的key分散放置到不同的redis节点,这里我们需要一个规则或者算法,通常的做法是获取key的哈希值,然后根据节点数来求模,但这种做法有其明显的弊端,当

2、我们需要增加或减少一个节点时,会造成大量的key无法命中,这种比例是相当高的,所以就有人提出了一致性哈希的概念。一致性哈希有四个重要特征:均衡性:也有人把它定义为平衡性,是指哈希的结果能够尽可能分布到所有的节点中去,这样可以有效的利用每个节点上的资源。单调性:对于单调性有很多翻译让我非常的不解,而我想要的是当节点数量变化时哈希的结果应尽可能的保护已分配的内容不会被重新分派到新的节点。分散性和负载:这两个其实是差不多的意思,就是要求一致性哈希算法对key哈希应尽可能的避免重复。但一致性哈希不是我们今天要介绍的重点,因为Redis引入另一种哈希槽(hashslot)的

3、概念。Redis集群中内置了16384个哈希槽,当需要在Redis集群中放置一个key-value时,redis先对key使用crc16算法算出一个结果,然后把结果对16384求余数,这样每个key都会对应一个编号在0-16383之间的哈希槽,redis会根据节点数量大致均等的将哈希槽映射到不同的节点。使用哈希槽的好处就在于可以方便的添加或移除节点。当需要增加节点时,只需要把其他节点的某些哈希槽挪到新节点就可以了;当需要移除节点时,只需要把移除节点上的哈希槽挪到其他节点就行了;内部机制,与我何干,对于我们来说,在新增或移除节点的时候不要让我们先停掉所有的redis

4、服务我就谢天谢地了,这点它做到了。下面我们就开始动手搭建一个redis集群来体验一下。因为我们要启动多个redis实例,虽然我们可以直接通过命令行来启动,但始终是不怎么方便的,所以我们先来新建三个实例目录,分别是9001,9002,9003,目录名就是redis实例的端口号。我这里已经建好了目录,然后我们把以前编译过和修改过的redis-server、redis.conf这两个文件分别拷贝到这三个目录里面,拷贝完之后就像这样子了:我们打开redis.conf文件,为了简单起见,我们只保留下面几个配置项:daemonizeyesport9001cluster-ena

5、bledyescluster-config-filenodes.confcluster-node-timeout5000appendonlyyes注意:port要修改成对应目录的名字,也就是每个实例要有不同的端口。下面我们分别启动这三个实例:zhaoguihuadediannao:~zhaogh$cdapplications/dev/redis-clusterzhaoguihuadediannao:redis-clusterzhaogh$cd9001zhaoguihuadediannao:9001zhaogh$./redis-server./redis.confz

6、haoguihuadediannao:9003zhaogh$cd../9002zhaoguihuadediannao:9002zhaogh$./redis-server./redis.confzhaoguihuadediannao:9002zhaogh$cd../9003zhaoguihuadediannao:9003zhaogh$./redis-server./redis.confzhaoguihuadediannao:9003zhaogh$ 接下来我们来创建集群,让三个实例互相通讯:zhaoguihuadediannao:srczhaogh$./redis-t

7、rib.rbcreate--replicas0127.0.0.1:9001127.0.0.1:9002127.0.0.1:9003>>>CreatingclusterConnectingtonode127.0.0.1:9001:OKConnectingtonode127.0.0.1:9002:OKConnectingtonode127.0.0.1:9003:OK>>>Performinghashslotsallocationon3nodes...Using3masters:127.0.0.1:9001127.0.0.1:9002127.0.0.1:9003M:92

8、c9912

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。