centos7 搭建 redis cluster 缓存集群

此文章时间较长没更新,请查看最新文章:

右键在新标签页中打开链接即可。

《centos7 Redis Cluster分布式集群搭建》  

-------------------------------------------------- 分割线 ----------------------------------------

  redis作为内存数据库,由于其性能的强大,和支持多种类型的数据,常被用来作为缓存数据库使用,之前有一篇文章,介绍了redis 的主从配置和哨兵来搭建分布式的缓存集群。
  之前是按照6台机,3台为一组,一主两从,三个哨兵都监控主(哨兵进程和服务进程是分离的,三台机,三个哨兵进程,三个服务进程,服务又分为一主两从),来配置。但是细心的朋友肯定会发现,这样配置的集群,组与组之间是没有联系的。并不能自动的分配缓存数据,要想两组做一个配合来为同一个应用提供缓存服务,则还需要配置一个分发规则,通过这个分发规则来存储和提取缓存数据。
  主要是这个分发规则需要自己配置,可以自己写,也可以用第三方的中间插件,由于本人的太懒,不想取研究分发规则的配置。所以,改用redis cluster集群。


 这是redis官方的一个用与集群搭建功能,实现了主从替换,自动分发存取。是一个去中心化的分布式集群。非常方便,redis cluster集群最少需要6个节点,也就是6个服务,三个主,三个从。当然你可以单机模拟,也可以多机实现,都可以。
redis cluster 集群搭建好后,就相当于是一个整体了,当集群中的 任一 master 挂掉,然后没有slave替换,则集群进去fail 状态,整体不可用。因为redis cluster集群是通过solt分配来进行自动分发和存储的,当这些slot中任意一段丢失,都会进去fail状态,整体不可用。


  这里具体讲解一下redis cluster集群的搭建和,具体原理介绍可自行百度。下面进行安装步骤:
系统环境     centos7.2
6台服务器    ip为别为  192.168.1.100~192.168.1.105


1.  先为你的每台机下载安装redis 
可以参考我之前的redis安装教程


2.登陆192.168.1.100 的机子
$ vi **/redis.conf (修改redis配置文件,根据你自己放置的路径,以下为可能需要修改的项)
---------------------------------------------------------------------------------------------
# bind 127.0.0.1 (注释掉bind,允许任意ip的连接访问,等于 bind 0.0.0.0)


daemonize yes (守护进程,在后台启动)


protected-mode no (关掉安全保护,在内网的话可以选择关掉,如何你没有设置密码或注释了bind,不关闭的话会连接报错)


port 6379 (端口,随你高兴,我这里直接没改,用的默认)


logfile "/usr/local/redis-4.0.1/log/redis-cluster.log" (指定pid文件路径,可以直接默认)


logfile "/usr/local/redis-4.0.1/log/redis-cluster.log" (指定日志文件路径,可以直接默认)


#save 900 1
#save 300 10
#save 60 10000 (注释掉持久化设置,全部存在内存中)


maxmemory 2gb (最大内存,根据你电脑自身内存自定义)


cluster-enabled yes (开启cluster集群)


cluster-config-file  **/nodes.conf (自定义指定cluster集群的配置文件路径,启动会自动生成)


cluster-node-timeout 5000 (超时时间,默认我15秒,我设的5秒)


appendonly no (这是用来持久化的,我们用作缓存时,不用开启,默认为no)
------------------------------------------------------------------------------------------------------------------
保存退出,将这个配置文件发到另外的所有服务器上。


3. 依次在每台服务器上 使用这个配置文件启动redis-server
$ redis-server **/redis.conf (指定配置文件启动redis)


4. 回到第一台服务器 192.168.1.100 上。
$ yum -y install ruby ruby-devel rubygems rpm-build   ( 安装一些 ruby 的依赖)


5.需要安装 ruby 的 redis插件。
$ gem install redis (可以连接直接这样下载安装)


$ gem install -l redis-3.3.3.gem (如果时内网,不能联网的,用别的机器下载这个插件,传到该服务   器上,然后用 -l 指定安装包路径安装。)
下载地址:https://rubygems.org/gems/redis/versions/3.3.3


6. 好了,现在可以利用redis官方给的自动集群搭建工具来创建集群。
$ redis-trib.rb create --replicas 1 192.168.1.100:6379 192.168.1.101:6379 192.168.1.102:6379 192.168.1.103:6379 192.168.1.104:6379 192.168.1.105:6379   
(1 表示master 的slave为一个,如果节点多,可以按需自定。设定后,会自动分配matser和slave。会出现以下内容,则为成功搭建了集群。)
------------------------------------------------------------
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.1.100:6379
192.168.1.101:6379
192.168.1.102:6379
Adding replica 172.18.42.182:6379 to 192.168.1.100:6379
Adding replica 172.18.42.183:6379 to 192.168.1.101:6379
Adding replica 172.18.42.184:6379 to 192.168.1.102:6379
M: 51bdb89760b5f829dd4395a6abea707c45e4d133 192.168.1.100:6379
   slots:0-5460 (5461 slots) master
M: d0d49ab33a36332889de72179cd3f57d682fb637 192.168.1.101:6379
   slots:5461-10922 (5462 slots) master
M: ec15af32df3281ac7f2c9887b977edd51b681240 192.168.1.102:6379
   slots:10923-16383 (5461 slots) master
S: 3a33282e1da1ed4072dbff84f3b9f0c0bb14a04b 192.168.1.103:6379
   replicates 51bdb89760b5f829dd4395a6abea707c45e4d133
S: 9913e9e0ef9e37fcf32f02d2de5a520124f34bb9 192.168.1.104:6379
   replicates d0d49ab33a36332889de72179cd3f57d682fb637
S: b8846a2dbe7edb3ea228f85831769d9c210de4b1 192.168.1.105:6379
   replicates ec15af32df3281ac7f2c9887b977edd51b681240
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join.....
>>> Performing Cluster Check (using node 192.168.1.100:6379)
M: 51bdb89760b5f829dd4395a6abea707c45e4d133 192.168.1.100:6379
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: 3a33282e1da1ed4072dbff84f3b9f0c0bb14a04b 192.168.1.103:6379
   slots: (0 slots) slave
   replicates 51bdb89760b5f829dd4395a6abea707c45e4d133
M: ec15af32df3281ac7f2c9887b977edd51b681240 192.168.1.101:6379
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 9913e9e0ef9e37fcf32f02d2de5a520124f34bb9 192.168.1.104:6379
   slots: (0 slots) slave
   replicates d0d49ab33a36332889de72179cd3f57d682fb637
S: b8846a2dbe7edb3ea228f85831769d9c210de4b1 192.168.1.105:6379
   slots: (0 slots) slave
   replicates ec15af32df3281ac7f2c9887b977edd51b681240
M: d0d49ab33a36332889de72179cd3f57d682fb637 192.168.1.102:6379
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
--------------------------------------------------------------------------


ok。到此集群搭建完成。可以进行测试,在任意一台机上,输入数据,可以从任意一台机上进行取值。
$ redis-cli -c  ( 在使用客户端进行连接时,需要加上 “-c”  。其他的正常操作)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值