qweewq123qwe 发表于 2017-12-21 10:31:56

centos7安装redis-4.0.1集群

  试验机操作系统:CentOS Linux>  本文的目的是教会大家快速搭建redis集群,完了再深入学习。
  试问如果不上手试验,看的资料再多有个毛用?
下载redis
  下载网址:https://redis.io/download
  写文章时最新版本为:redis-4.0.1.tar.gz

  可以先下载到windows操作系统,然后拷贝到centos。
  下载成功后,在centos上创建一个目录,存放我们的软件,我比较喜欢放在/soft目录下。
# mkdir /soft
  然后利用WinScp工具拷贝到centos系统,放在/soft/目录下。
安装gcc
# yum install gcc
  中间有2次提示,要求输入:yes 或 y,我们按照提示来就可以。
安装pstree
# yum install psmisc
  中间有1次提示,要求输入:y。按照提示来就可以。
解压tar包
# cd /soft
# tar zxvf redis-4.0.1.tar.gz
# mv redis-4.0.1 /usr/local/redis
编译安装
# cd /usr/local/redis
# make MALLOC=libc
# make & make install
  说明:如果在make的时候不指定内存管理方式,会报错的:
  zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录。
  malloc是管理内存碎片的。
启动reids
# src/redis-server redis.conf
  如果成功,如下图:

  然后新开终端,打开redis客户端
# cd /usr/local/redis/
# src/redis-cli

  表示已经启动成功。
  我相信单机安装有点linux基础的同学都能安装成功。
  -------------------------------------------------------------------------------
Redis集群
  redis集群要求最小3主3从。我这里跟其它介绍的不一样,我是模拟的真机环境。
  准备6台centos7服务器,其中192.168.1.80我们刚刚装了redis,并启动成功。
  因为redis集群还需要安装ruby,还需要配置集群,所以我的想法是先在一台机器上安装好之后,我们再拷贝整个系统到其它5台机器。这样我们做的重复工作就比较少了。
  192.168.1.80
  192.168.1.81
  192.168.1.82
  192.168.1.83
  192.168.1.84
  192.168.1.85
安装ruby
  在刚安装好的redis服务器上安装ruby
  因为创建集群时需要用Ruby 运行redis-trib.rb
# yum -y install ruby ruby-devel rubygems rpm-build
# gem install redis
  这条命令有点慢,稍等片刻即可安装成功,如下图:

修改redis.conf
  打开redis.conf,把下面列出来的配置项全部注释,完了拷贝下面7条配置到redis.conf文件末尾
port 6379
bind 192.168.1.80
daemonize yes
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
pidfile /var/run/redis_6379.pid
克隆5台系统
  克隆5台操作系统,并且每台系统的redis.conf中的bind修改成对应的IP
  我用的虚拟机,克隆前先关掉虚拟机,即192.168.1.80。不然无法克隆。
打开相关端口
  说明:
  redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口
  集群总线端口为redis客户端连接的端口 + 10000
  如redis端口为6379,则集群总线端口为16379
  所以,所有服务器需要开通redis的客户端连接端口和集群总线端口
  每台都要开启这两个端口
  开启6379端口和16379端口
# firewall-cmd --zone=public --add-port=6379/tcp --permanent
# firewall-cmd --zone=public --add-port=16379/tcp --permanent
  重启防火墙
# firewall-cmd --reload
启动redis
  每台都要启动
# cd /usr/local/redis/
# src/redis-server redis.conf
启动集群
# /usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.1.80:6379 192.168.1.81:6379 192.168.1.82:6379 192.168.1.83:6379 192.168.1.84:6379 192.168.1.85:6379
  如下图,表示成功启动

  仔细看这张图,其中
  192.168.1.80
  192.168.1.81
  192.168.1.82
  三台节点自动设置成了主节点
  192.168.1.83
  192.168.1.84
  192.168.1.85
  三台节点自动设置成了从节点,而且每个从节点对应哪个主节点都有说明。
连接redis集群
  在192.168.1.80机器上进行连接
# src/redis-cli -h 192.168.1.80 -c -p 6379
  必须要加:-c参数
  在192.168.1.80节点上写一条数据,看图:

  然后Ctrl+c退出redis客户端,再连接到192.168.1.83节点上进行查询
# src/redis-cli -h 192.168.1.83 -c -p 6379
  看图:

  看到没,跳转到192.168.1.80上了,从192.168.1.80获取的数据
  好了,成功了,累死宝宝了。
参考网址
  https://redis.io/download
  http://os.51cto.com/art/201702/533052.htm?pc

  如果重启服务器后,再次执行redis-trib.rb会报错如下错误:
Node 192.168.1.80:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
  解决方法:
  删除dump.rdb和nodes-6379.conf这两个文件,然后重启redis服务,最后启动集群。
  1次不行搞2次,2次不行搞3次。多删除几次。
页: [1]
查看完整版本: centos7安装redis-4.0.1集群