搭建redis集群,肯定需要多台服务器,这些服务器可以是虚拟机也可以是物理机,并且还要在这些机器上安装redis服务实例,通常一台服务器上不止安装一个redis服务实例,因此就有了本文的题目《多机器上redis的快速安装》。本文主要介绍如何快速在多台服务器上安装多个redis服务实例,是玩转redis集群的基础篇。

一、环境介绍

    本文搭建redis集群采用3台虚拟机,每台虚拟机上安装2个redis服务实例,端口号分别为6379和6380。

机器IP | redis实例
---|---
10.7.3.40 | 实例1(6379),实例2(6380)
10.7.3.50 | 实例1(6379),实例2(6380)
10.7.3.60 | 实例1(6379),实例2(6380)

二、单台服务器安装多个redis服务实例

    本节主要描述如何在单台服务器上安装多个(本文举例2个)redis实例,先选取10.7.3.40这台机器安装。

2.1 redis安装

    从redis官网下载安装包,本文采用redis-3.2.8版本。注意,cluster集群从redis3.0开始支持。下载命令:

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

    开始解压安装,命令如下:

tar -xzvf redis-3.2.8.tar.gz
ln -s redis-3.2.8/ redis #创建软链接,以便版本切换(升级)
cd redis
make

    编译(make)完成之后,在redis/src目录下将生成可以执行脚本文件,如下图:

redis可执行脚本.png

    到现在为止,上图中的可执行脚本还未加入到path路径中,每次执行都要定位到redis/src目录中才能执行,不太方便。让我们在执行一下如下的命令:

make install

    这样子就可以在任何目录下执行上图的脚本了,不用跳目录了。make install会将这些可执行命令拷贝到/usr/local/bin目录中,读者可以自行验证。

2.2 redis配置

    本节的配置策略不是简单的针对单个redis实例进行配置,而是针对单机多个redis实例的情况。配置步骤如下:

  1. 创建redis实例的数据目录

    数据目录用于存放redis持久化数据和日志数据,执行如下命令:

mkdir -p /var/redis/6379 #存放端口号6379 redis实例的数据
mkdir -p /var/redis/6380 #存放端口号6380 redis实例的数据
  1. 创建redi实例的配置文件

    先创建存放配置文件的目录,执行如下命令:

mkdir -p /etc/redis

    将解压目录下的redis.conf文件copy只上述目录,命令为:6379.conf,接下来修改该文件,主要包括下面的修改内容。

  • 注释# bind 127.0.0.1
  • protected-mode no
  • port 6379
  • daemonize yes
  • supervised no
  • pidfile /var/run/redis_6379.pid
  • logfile "/var/redis/6379/log"
  • dir /var/redis/6379

    将修改完成的文件copy为6380.conf,然后将6380.conf文件中的'6379'全部替换为'6380'。
    至此,两个redis实例的配置文件已准备好。

2.3 redis启动脚本

    通常redis服务的启动方式是执行如下脚本:

redis-server redis.conf

    但是,本文介绍另一种以脚本方式启动redis服务的方法,方便快速启动多个redis服务。首先,将redis/utils/redis_init_script文件拷贝到/etc/init.d/目录下,命名为redis_6379。

cd ${REDIS_HOME};
cp utils/redis_init_script /etc/init.d/redis_6379

    然后,编辑/etc/init.d/redis_6379,主要是在文件头部增加对chkconfig的注释,以便实现脚本的开机自启功能。增加内容如下:

# chkconfig: 2345 10 90
# description: redis server on 6379

    编辑完成后保存,然后拷贝该文件命名为redis_6380,并修改redis_6380文件,编辑变量REDISPORT=6380即可。

    至此,两个redis实例的启动脚本已经完成,此时可以通过如下命令启动对应的redis实例服务。

service redis_6379 start    #启动端口为6379的redis服务
service redis_6379 stop     #停止端口为6379的redis服务
service redis_6380 start    #启动端口为6380的redis服务
service redis_6380 stop     #停止端口为6380的redis服务

    如果想要redis服务跟随机器自动启动,则执行如下命令即可:

chkconfig redis_6379 on     #端口为6379的redis服务随机自启
chkconfig redis_6380 on     #端口为6380的redis服务随机自启
chkconfig --list | grep redis   #查看redis服务随机自启是否设置成功

    接下来可以重启虚拟机,然后查看redis服务是否自动启动,执行命令:

ps -ef | grep redis

    结果如下图所示:

redis进程.png

三、其他服务器快速部署服务器实例

    即使是快速部署,也需要【安装】和【配置】两个步骤,本文中“快速”的意思是省略配置功能,直接从已配置好的机器拷贝配置文件即可。

3.1 不可避免的安装

    请参考本文2.1节内容完成redis的安装。

3.2 拷贝配置

    需要拷贝的配置信息总共包含三个部分:

  1. 数据存储目录
scp -r root@10.7.3.40:/var/redis /var/
  1. 配置文件目录
scp -r root@10.7.3.40:/etc/redis /etc/
  1. 启动脚本
scp root@10.7.3.40:/etc/init.d/redis_6379 /etc/init.d/
scp root@10.7.3.40:/etc/init.d/redis_6380 /etc/init.d/
  1. 自启设置

    执行如下命令即可:

chkconfig redis_6379 on     #端口为6379的redis服务随机自启
chkconfig redis_6380 on     #端口为6380的redis服务随机自启
chkconfig --list | grep redis   #查看redis服务随机自启是否设置成功

    大功告成了一部分,而且是最基本的部分。本文阐述的redis的安装和配置方式,非常灵活,便于服务升级和服务扩展。后续将继续介绍redis的哨兵模式,敬请期待!

文章作者:xiaohui249
本文链接:https://javatech.wang/index.php/archives/103/
版本所有 ©转载时必须以链接形式注明作者和原始出处