hotshotgg

导航

centos7下redis-6.0.5安装

1、下载安装包

进入官网(https://redis.io/download)下载指定版本的安装包,这里下载的是最新的redis-6.0.5.tar.gz:

 

2、解压压缩文件

tar -zxvf redis-6.0.5.tar.gz

cd redis-6.0.5/

 

3、编译安装redis

在编译安装前,查看系统gcc环境的版本(gcc -v),centos7默认安装的版本为4.8.5,该版本过低会无法进行安装,需要升级gcc到6以上。

sudo yum -y install centos-release-scl

sudo yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

sudo scl enable devtoolset-9 bash

sudo echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

gcc -v

 

 gcc依赖安装完成后,进入redis解压目录进行安装:

sudo make && sudo make install PREFIX=/usr/local/redis-6.0.5

cd src && make install

 

进入安装目录,启动服务查看redis是否安装成功:

cd /usr/local/redis-6.0.5/bin/

./redis-server

 

4、调整配置

更改redis一些必要的配置,首先将解压目录下的redis.conf文件拷贝到安装目录下:

sudo cp /java/soft/redis-6.0.5/redis.conf /usr/local/redis-6.0.5/

修改其中的一些必要配置:

daemonize no --> yes   让redis启动的时候以后台服务的形式

requirepass foobared --> 设置redis的连接密码

port 6379    --> redis的启动端口,默认为6379

 

cd ..

./bin/redis-server redis.conf

ps -ef|grep redis

 

5、设置服务

将redis做成服务,并设置成开机启动:

sudo vim /etc/systemd/system/redis.service

[Unit]

Description=redis-server

After=network.target

 

[Service]

Type=forking

ExecStart=/usr/local/redis-6.0.5/bin/redis-server /usr/local/redis-6.0.5/redis.conf

PrivateTmp=true

 

[Install]

WantedBy=multi-user.target

 

sudo systemctl daemon-reload

sudo systemctl start redis.service

ps -ef|grep redis

sudo systemctl enable redis.service

 

 添加环境变量,让可以在任意地方使用redis命令:

sudo vim /etc/profile

# redis

PATH=$PATH:/usr/local/redis-6.0.5/bin

export PATH

source /etc/profile

 

 6、创建集群目录

创建redis集群至少需要3个节点,而每个节点至少有一个备份节点,所以至少需要创建6个节点。在安装目录下创建6个目录7000,7001,7002,7003,7004,7005,然后将redis.conf文件复制到7000目录下,并修改:

sudo mkdir redis-cluster

sudo mkdir -p redis-cluster/7000

sudo mkdir -p redis-cluster/7001

sudo mkdir -p redis-cluster/7002

sudo mkdir -p redis-cluster/7003

sudo mkdir -p redis-cluster/7004

sudo mkdir -p redis-cluster/7005

sudo cp redis.conf redis-cluster/7000/

 

sudo vim redis-cluster/7000/redis.conf

将redis.conf中的配置按照以下进行调整:

#后台启动

daemonize yes

pidfile /usr/local/redis-6.0.5/redis-cluster/redis_7000.pid

# 和文件夹对应的端口号

port 7000

# 注释去掉

cluster-enabled yes

# 注释去掉,并将名称后面改成对应端口号

cluster-config-file nodes-7000.conf

# 节点通讯时间

cluster-node-timeout 15000

# 持久化方式

appendonly yes

# 集群密码,自行进行调整

requirepass 12345616 # redis集群数据库和日志存储目录17 dir /usr/local/redis-6.0.5/redis-cluster/

 

 将7000下的redis.conf分别拷贝到其他几个目录下,并将配置文件里面的对应端口号改成文件夹的端口号

 

7、redis集群脚本

redis集群需要启动的比较多,为了方便,建立一个脚本自动启动和关闭redis集群,并设置开机启动:

sudo vim /etc/init.d/redisc

 然后将下面的内容拷贝到文件中:

#!/bin/sh

# chkconfig: 2345 80 90

#

# Simple Redis init.d script conceived to work on Linux systems

# as it does use of the /proc filesystem.

 

REDISPORT1=7001

REDISPORT2=7002

REDISPORT3=7003

REDISPORT4=7004

REDISPORT5=7005

REDISPORT6=7000

PASSWD=123456

EXEC=/usr/local/redis-6.0.5/bin/redis-server

CLIEXEC=/usr/local/redis-6.0.5/bin/redis-cli

PIDFILE=/usr/local/redis-6.0.5/redis-cluster/redis_${REDISPORT1}.pid

 

CONF1="/usr/local/redis-6.0.5/redis-cluster/${REDISPORT1}/redis.conf"

CONF2="/usr/local/redis-6.0.5/redis-cluster/${REDISPORT2}/redis.conf"

CONF3="/usr/local/redis-6.0.5/redis-cluster/${REDISPORT3}/redis.conf"

CONF4="/usr/local/redis-6.0.5/redis-cluster/${REDISPORT4}/redis.conf"

CONF5="/usr/local/redis-6.0.5/redis-cluster/${REDISPORT5}/redis.conf"

CONF6="/usr/local/redis-6.0.5/redis-cluster/${REDISPORT6}/redis.conf"

 

case "$1" in

start)

if [ -f $PIDFILE ]

then

echo "$PIDFILE exists, process is already running or crashed"

else

echo "Starting Redis cluster server..."

$EXEC $CONF1 &

$EXEC $CONF2 &

$EXEC $CONF3 &

$EXEC $CONF4 &

$EXEC $CONF5 &

$EXEC $CONF6 &

echo "启动成功..."

fi

;;

stop)

if [ ! -f $PIDFILE ]

then

echo "$PIDFILE does not exist, process is not running"

else

PID=$(cat $PIDFILE)

echo "Stopping ..."

$CLIEXEC -p $REDISPORT1 -a $PASSWD shutdown

$CLIEXEC -p $REDISPORT2 -a $PASSWD shutdown

$CLIEXEC -p $REDISPORT3 -a $PASSWD shutdown

$CLIEXEC -p $REDISPORT4 -a $PASSWD shutdown

$CLIEXEC -p $REDISPORT5 -a $PASSWD shutdown

$CLIEXEC -p $REDISPORT6 -a $PASSWD shutdown

while [ -x /proc/${PID} ]

do

echo "Waiting for Redis cluster to shutdown ..."

sleep 1

done

echo "Redis cluster stopped"

fi

;;

*)

echo "Please use start or stop as first argument"

;;

esac

 

 注册成系统服务并开机启动:

sudo chkconfig --add redisc

sudo chkconfig redisc on

sudo chmod a+x /etc/init.d/redisc

 

 redis服务命令:

启动:sudo service redisc start

关闭:sudo service redisc stop

 

8、创建集群

直接使用redis-cli命令进行创建:

sudo ./bin/redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 -a [password] --cluster-replicas 1

中途输入yes

 

说明:1、如果没有设置密码。则不需要添加-a [password]

      2、如果是在不同服务器之间开启集群,则需要使用ip地址进行集群创建,而不是127.0.0.1,同样的,对应的redis.conf中的bind ip也需要换成对应的ip地址

      3、集群防火墙的开通除了需要开通上面的端口外,还需要开通集群总线的端口,集群总线端口为配置端口+10000。如果没有开通集群总线端口,在创建集群时,会一直Waiting for the cluster to join。

      4、低版本redis下,创建集群需要使用redis-trib.rb工具,如果redis-cli没有该命令,请使用redis-trib工具进行创建

posted on 2020-09-03 08:38  hotshotgg  阅读(273)  评论(0编辑  收藏  举报