redis4.0.11集群搭建、安装ruby以及安装报错

redis4.0.11集群搭建

1、需要具备至少三台虚拟机,在每台虚拟机上安装一主一从

2、搭建三台虚拟机,实现6个cluster实例

3、创建三个文件夹

mkdir -p /etc/redis-cluster  #保存实例集群状态,包含其他信息
mkdir -p /var/log/redis #redis启动日志
mkdir -p /var/redis/7001 #持久化存储地址,每个实例但是分配一个文件夹,比如在本台虚拟机创建两个实例,就需要在创建一个文件夹,/var/redis/7002,以此类推
mkdir -p /etc/redis #存储redis.conf配置文件路径

4、修改redis.conf配置文件(我把redis.conf,改为7001.conf名称,此时可以存放多个实例配置文件),这是其中1个实例的配置

port 7001
cluster-enabled yes #开启集群
cluster-config-file /etc/redis-cluster #集群状态信息
cluster-node-timeout 15000 #集群节点超时
daemonize yes #在后台运行
pidfile /var/run/redis_7001.pid #pid存储路径
dir /var/redis/7001 #持久化存储路径
logfile /var/log/redis/7001.log
bind 192.168.1.115 #本虚拟机地址,假设在同一台虚拟机创建两个实例,此地址相同
appendonly yes #开启AOF持久化

5、准备启动redis-cluster集群,其他虚拟机也是此操作

cp /usr/local/redis/redis-4.0.11/utils/redis_init_script  /etc/init.d/redis_7001

# 再进入/etc/init.d
# 将redis_7001文件授权

chmod 777 redis_7001

vi redis_7001
#### 以下是文件内容,将REDISPORT改成7001即可。然后保存

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

# chkconfig:   2345 90 10

# description:  Redis is a persistent key-value database

### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO

REDISPORT=7001
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

# 已不是文件内容
# 执行启动redis命令
./7001.conf start

6、安装ruby

wget https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.7.tar.gz
tar xvf ruby-2.2.7.tar.gz
cd ruby-2.2.7
./configure --prefix=/usr/local/ruby-2.2.7
make && make install
ln -s /usr/local/ruby-2.2.7/bin/ruby /usr/bin/ruby
ln -s /usr/local/ruby-2.2.7/bin/gem /usr/bin
ruby -v
gem -v

7、使用gem安装redis集群依赖

gem install redis

#假设此命令报错后,提示
ERROR:  Loading command: install (LoadError)
	cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args for nil:NilClass

#还需安装zlib依赖,zlib库

yum install zlib-devel
cd /data/ruby-2.4.2
cd ext/zlib
ruby extconf.rb
make #如果此命令报错的话需修改一个文件,如果不报错继续执行 make install
//在操作下一步之前需要修改Makefile文件中的zlib.o: $(top_srcdir)/include/ruby.h,将$(top_srcdir)修改为../..如下
//zlib.o: ../../include/ruby.h
//这一步如果不修改,make时会爆出另外一个错误
//报错信息:make:*** No rule to make target `/include/ruby.h, needed by `zlib.o.  Stop
make install 

#安装zlib库
yum install openssl-devel
cd /data/ruby-2.4.2
cd ext/openssl
ruby extconf.rb
make #如果此命令报错的话需修改一个文件,如果不报错继续执行 make install
//报错信息:make: *** No rule to make target `/include/ruby.h', needed by `ossl_ssl_session.o'.  Stop.
vi Makefile #经过仔细查看,发现少了top_srcdir的定义,我在此文件上方加了“top_srcdir = ../..”变量
# 然后再执行make命令,发现可以了
make install

gem install redis

8、将16384个槽位分配到各个实例上

cp /usr/local/redis/redis-4.0.1/src/redis-trib.rb /usr/local/bin

redis-trib.rb create --replicas 1 192.168.31.187:7001 192.168.31.187:7002 192.168.31.19:7003 192.168.31.19:7004 192.168.31.227:7005 192.168.31.227:7006

redis-trib.rb check 192.168.31.187:7001 #询问其中一台实例,获取集群状态以及信息

已部署集群完毕

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值