首页 > 学院 > 开发设计 > 正文

Redis集群搭建全记录

2019-10-26 19:29:58
字体:
来源:转载
供稿:网友

Redis集群是一个提供在多个Redis节点间共享数据的程序集。

  Redis集群中不支持处理多个keys的命令。

  Redis集群通过分区来提供一定程度的可用性。在某个节点宕机或者不可用的时候可以继续处理命令。

Redis集群数据分片

  在Redis集群中,使用数据分片(sharding)而不是一致性hash(consistency hashing)来实现,一个Redis集群包含16384个哈希槽(hash slot),数据库中的每个键都存在这些哈希槽中的某一个,通过CRC16校验后对16384取模来决定。

  加入说现在集群中有三个节点,那么

  ①节点A包含0到5500号哈希槽。

  ②节点B包含5501到11000号哈希槽。

  ③节点C包含11001到16384号哈希槽。

  然后如果我们要增加一个节点的时候,会从ABC三个节点分别得到一部分槽到D上。如果我们移除一个节点的时候,就会把移除的节点的分隔槽移到剩下的槽上面。

Redis主从复制模型

  为了实现Redis的集群的高可用性。Redis提供了一个主从复制模型。每个节点都会有N-1个复制品。

  如果在创建集群的时候,我们为每个节点添加了一个从节点,这时候,如果其中的某个主节点挂掉了,便会把它的从节点做为新的主节点,继续提供服务。但是如果主节点和从节点都挂掉了,那就不可以继续使用了。

Redis集群搭建

  Redis集群由多个云新在集群模式下的Redis实例组成。实例的集群模式需要通过配置来开启。

  下面是一个包含了最少选项的集群配置文件实例:

port 7000cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000appendonly yespidfile /var/run/redis_xxxx.piddir /usr/local/redis-cluster/xxxx

port指定了节点的端口号

cluster-enabled yes选项用于开启实例的集群模式

cluster-config-file nodes.conf设置了保存节点的配置文件路径,这个文件无须认为修改,是在集群启动的时候创建。

cluster-node-timeout 5000:设置了方式失败的等待时间。即5秒还访问不了就认为这个节点不可用。

appendonly yes:用于开启aof持久化

 pidfile /var/run/redis_xxxx.pid设置pid文件的位置,其中xxxx为端口号

dir /usr/local/redis-cluster/xxxx设置工作目录,其中xxxx为端口号。

此时目录中的文件是这样的

[root@localhost 10:49 /usr/local/redis-cluster]# ll 7000 7001 7002 7003 7004 70057000:总用量 7080-rw-r--r--. 1 root root  57787 9月 10 10:44 redis.conf-rwxr-xr-x. 1 root root 7185872 9月 10 09:50 redis-server7001:总用量 7080-rw-r--r--. 1 root root  57787 9月 10 10:46 redis.conf-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server7002:总用量 7080-rw-r--r--. 1 root root  57787 9月 10 10:46 redis.conf-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server7003:总用量 7080-rw-r--r--. 1 root root  57787 9月 10 10:47 redis.conf-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server7004:总用量 7080-rw-r--r--. 1 root root  57787 9月 10 10:48 redis.conf-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server7005:总用量 7080-rw-r--r--. 1 root root  57787 9月 10 10:48 redis.conf-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server[root@localhost 10:49 /usr/local/redis-cluster]#            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表