徐城乡建设局网站,漳平建设局网站,同城版网站建设,系统搭建是什么意思Redis Cluster
它是Redis的分布式解决方案#xff0c;在Redis 3.0版本正式推出的#xff0c;有效解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时#xff0c;可以采用Cluster架构达到负载均衡的目的。数据分布理论: 分布式数据库首要解决把整个数据集按照…Redis Cluster
它是Redis的分布式解决方案在Redis 3.0版本正式推出的有效解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时可以采用Cluster架构达到负载均衡的目的。数据分布理论: 分布式数据库首要解决把整个数据集按照分区规则映射到多个节点的问题,即把数据集划分到多个节点上每个节点负责整个数据的一个子集。常见的分区规则有哈希分区和顺序分区。Redis Cluster采用哈希分区规则因此接下来会讨论哈希分区规则。常见的哈希分区有以下几种: 节点取余分区一致性哈希分区虚拟槽分区
顺序分区
可以顺序访问数据分散容易倾斜举例HBase和bigtable哈希分布
节点取余
数据节点关系变化很大导致数据迁移迁移的数量和添加节点有关最好翻倍扩容一致性哈希分区
只影响相邻节点但还是会有数据迁移redis采用的虚拟槽分区
每一个槽都会映射一个数据子集key会根据CRC16哈希函数来计算槽范围redis集群功能限制
key批量操作支持有限。如MSETMGET目前只支持具有相同slot值的key执行批量操作key事务操作支持有限。支持多key在同一节点上的事务操作不支持分布在多个节点的事务功能key作为数据分区的最小粒度因此不能将一个大的键值对象映射到不同的节点。如hash、list不支持多数据库空间。单机下Redis支持16个数据库集群模式下只能使用一个数据库空间即db 0
集群安装 配置
需要最少六台redis节点其中三台用来设置槽的范围6380、6381、6382其余三台用于Redis cluster638{3-5}6380,6381,6382作为主节点6383,6384,6385作为从节点和以往操作一样新建一个文件夹mkdir cluster作为集群安装的基础文件夹在里面以端口进行文件夹的创建mkdir -pv {6380,6381,6382,6383,6384,6385}/{conf,data,logs}以端口建文件夹以及对应的conf、data和logs配套文件夹在6380的文件夹下的conf文件夹下新建redis.conf文件输入的内容如下
daemonize yespidfile /usr/local/redis-4.0.14/cluster/6380/redis.pidport 6380loglevel noticeprotected-mode nologfile /usr/local/redis-4.0.14/cluster/6380/logs/redis.logdir /usr/local/redis-4.0.14/cluster/6380/data## 集群模式配置cluster-enabled yescluster-node-timeout 15000cluster-config-file /usr/local/redis-4.0.14/cluster/6380/nodes.conf
将其拷贝到其余的集群文件所对应的文件夹下cp 6380/conf/redis.conf 6381/conf/,此刻是在cluster的文件目录内进行此操作将redis.conf里面的端口信息使用命令进行修改别的不需要改变sed -i s/6380/6381/g 6381/conf/redis.conf以上的两个操作适用于全部的端口文件在src目录下启动所有的集群服务redis-server /usr/local/redis-4.0.14/cluster/6380/conf/redis.conf,其余的类似使用命令查看状态ps -ef|grep redis,可以看到redis的后年会标有【cluster】的标志使用命令连接到6380接口redis-cli -p 6380 使用info命令查看相关信息,在redis-cli里面进行操作CLUSTER nodes查看集群的节点前面的字符串是集群ID,在redis-cli里面进行操作cluster meet 192.168.33.130 6381将其余的节点加入到集群中,在redis-cli里面进行操作给每一个集群的节点分配槽使用命令redis-cli -p 6380 cluster addslots {0..5461},需要退出redis-cli进行操作redis-cli -p 6381 cluster addslots {5462..10922}redis-cli -p 6382 cluster addslots {10923..16383}将6383作为6380的从节点redis-cli -p 6383 cluster replicate 6380的序列号同理将6384和6385配置成为6381和6382的从节点可以使用ruby可以简化集群配置的流程
集群模式的要求
安装ruby(大于2.2.2)安装redis 集群配置安装gem安装ruby的redis包redis-trib.rb构建集群