Redis集群搭建

2018-07-05  本文已影响0人  丿灬小朋

一、如果是自己搭建,可以用虚拟机搭建,一般需要三台虚拟服务器

安装前记得安装gcc,redis 基于gcc
yum install gcc

1. 下载和解包(也可以下载好的,从本地上传)

cd /test/

wget http://download.redis.io/releases/redis-3.2.1.tar.gz

tar -zxvf redis-3.2.1.tar.gz

2. 编译安装


cd redis-3.2.1

make && make install

3. 创建redis节点

测试我们选择3台服务器,分别为:192.168.33.20,192.168.33.21,192.168.33.22每分服务器有2个节点。

a) 我先在192.168.33.20创建2个节点:

cd /test/

mkdir redis_cluster //创建集群目录

cd redis_cluster

mkdir 7001 7002 //分别代表二个节点  其对应端口  7001 7002

//创建7001节点为例,拷贝到7001目录

cp /test/redis-3.2.1/redis.conf.7001

//拷贝到7001目录

cp /test/redis-3.2.1/redis.conf.7001

//拷贝到7002目录

cp /test/redis-3.2.1/redis.conf.7002

 
b) 分别对7001,7002文件夹中的2个文件修改对应的配置



daemonize    yes //redis后台运行

bind  192.168.33.22 //对应自己的机器ip,默认会报错([ERR] Sorry, can't connect to node )

pidfile /var/run/redis_7001.pid //pidfile文件对应7001,7002   进程id

logfile   "/test/redis_log/redis_7000.log" //日志记录文件

dir  "/test/redis_db" //集群相关目录存放地址

port 7001 //端口7001,7002

cluster-enabled yes //开启集群  把注释#去掉

cluster-config-file nodes_7001.conf //集群的配置  配置文件首次启动自动生成 7000,7001,7002

cluster-node-timeout 5000 //请求超时  设置5秒够了

appendonly yes //aof日志开启  有需要就开启,它会每次写操作都记录一条日志

c) 在192.168.33.21 和192.168.33.22创建2个节点:对应的端口改为7003,7004,7005,7006配置对应的改一下就可以了。
d) 两台机启动各节点(三台服务器方式一样)


cd /test/redis-3.2.1

redis-server redis_cluster/7001/redis.conf

redis-server redis_cluster/7002/redis.conf

redis-server redis_cluster/7003/redis.conf

redis-server redis_cluster/7004/redis.conf

redis-server redis_cluster/7005/redis.conf

redis-server redis_cluster/7006/redis.conf
e) 查看服务

ps -ef | grep redis       #查看是否启动成功

netstat -tnlp | grep redis    #可以看到redis监听端口

pkill -9  redis   #可以杀死启动的redis的所有进程

4、搭建集群

,接下来我们要把这些节点都串连起来搭建集群。官方提供了一个工具:redis-trib.rb(/usr/local/redis-
3.2.1/src/redis-trib.rb) 看后缀就知道这鸟东西不能直接执行,
它是用ruby写的一个程序,所以我们还得安装ruby.

yum -y install ruby ruby-devel rubygems rpm-build
再用 gem 这个命令来安装 redis接口。gem是ruby的一个工具包.
gem install redis    //等一会儿就好了
***当然大部分情况下这样安装,安装完成后,会发现用yum安装的版本不对,版本不能太低
    可以安装rubygems-2.6.13.tgz ,版本在2.0以上

    tar zxvf rubygems-2.6.13.tgz
    cd rubygems-2.6.13
    ruby setup.rb

同时也需要安装redis模块 redis-3.3.1.gem
使用gem命令安装
gem install -l redis-3.3.1.gem

再重新执行上一条安装redis接口命令
上面的步骤完事了,接下来运行一下redis-trib.rb

/test/redis-3.2.1/src/redis-trib.rb

image.png
到这,应该明白了吧, 就是靠上面这些操作 完成redis集群搭建的。确认所有的节点都启动,接下来
使用参数create 创建 (在192.168.33.20中来创建)

/test/redis-3.2.1/src/redis-trib.rb  create  --replicas  1  192.168.33.20:7001 192.168.33.20:7002 
192.168.33.21:7003 192.168.33.21:7004  192.168.33.22:7005  192.168.33.22:7006
解释下, --replicas  1  表示 自动为每一个master节点分配一个slave节点    上面有6个节点,程序会按
照一定规则生成 3个master(主)3个slave(从)
前面已经提醒过的 防火墙一定要开放监听的端口,否则会创建失败。
运行中,提示Can I set the above configuration? (type 'yes' to accept): yes    //输入yes
接下来 提示  Waiting for the cluster to join..........  安装的时候在这里就一直等等等,没反应,傻傻等半
天,看这句提示上面一句,Sending Cluster Meet Message to join the Cluster.

但大部分情况按照上述就可以完成
    这下明白了,刚开始在一台Server上去配,也是不需要等的,这里还需要跑到Server2上做一些这样的操作。
    在192.168.22.21, redis-cli -c -p 7002、7003 分别进入redis各节点的客户端命令窗口, 依次
输入 cluster meet 192.168.22.21 7000
    回到Server1,已经创建完毕了。
    查看一下 /test/redis/src/redis-trib.rb check 192.168.1.237:7000
    到这里集群已经初步搭建好了。

5、redis命令

入redis客户端:
redis-cli -h 192.168.33.20 -p 7001 -c

查看redis信息
cluster info

查看节点信息
cluster nodes

6. 安装可能遇到的问题

1、CC adlist.o
  /bin/sh: cc: command not found
  make[1]: *** [adlist.o] Error 127
  make[1]: Leaving directory `/usr/local/redis-3.2.1/src
  make: *** [all] Error 2
解决办法:GCC没有安装或版本不对,安装一下
yum  install  gcc




 2、zmalloc.h:50:31: 
  error: jemalloc/jemalloc.h: No such file or directory
  zmalloc.h:55:2: error: 

  #error "Newer version of jemalloc required"
  make[1]: *** [adlist.o] Error 
  1
  make[1]: Leaving directory `/data0/src/redis-2.6.2/src
  make: *** [all] 
  Error 2
解决办法:原因是没有安装jemalloc内存分配器,可以安装jemalloc 或 直接
输入make MALLOC=libc  && make install



相信自己,每一天都在进步!
上一篇下一篇

猜你喜欢

热点阅读