Linux搭建Redis集群

Linux搭建Redis集群

1 说明

1.1 编写目的

本文编写旨在介绍Redis的集群架构配置,了解Redis的基本使用。

1.2 适用范围

本文适用于对Redis集群比较有兴趣的童鞋。本文仅介绍了Redis的基本知识、集群架构,以及Redis的基本使用;大神请飘过。

2 配置准备

2.1 服务器准备

一般情况下,Redis集群至少需要6个节点,3主3从。本文就以2台机器6个节点作为安装环境进行配置,操作系统以Centos 6.10为例,如果有多台机器的童鞋可以添加更多的节点。
各个节点及描述如下表所示:

机器名IP描述
node2192.168.204.132创建三个节点7001,7002,7003
node3192.168.204.133创建三个节点7004,7005,7006

2.2 环境准备

CentOs6.10;

2.3 软件准备

Redis是一款开源软件,可到官网地址下载:
wget http://download.redis.io/releases/redis-4.0.1.tar.gz

(具体版本以公司规定或者官网为准)

3 Redis安装

3.1 Redis安装

如无特别说明,两台服务器操作一致;
1、进入某一目录(本文以/home为例),执行如下命令完成Redis的下载:
wget http://download.redis.io/releases/redis-4.0.1.tar.gz

2、执行命令解压压缩包至软件常用安装目录:
[root@node2 home]# tar -zxvf redis-4.0.1.tar.gz -C /usr/local/apps/
(/usr/local/apps/ 为我的redis安装目录,读者君可酌情修改)

3、编译以及安装
切换目录至redis解压目录:cd /usr/local/apps/redis-4.0.1
编译以及安装make && make install

4、创建bin目录并且将常用命令拷贝至bin目录,这样方便管理
mkdir /usr/local/apps/redis-4.0.1/bin/
cp redis-server redis-cli redis-sentinel redis-benchmark redis-check-aof redis-check-rdb redis-trib.rb /usr/local/apps/redis-4.0.1/bin/

5、创建多实例文件夹
cd /usr/local/apps/redis-4.0.1/
mkdir redis-cluster
cd redis-cluster
mkdir 7001 7002 7003
另一台服务器可创建目录7004 7005 7006

6、复制配置文件redis.conf至各实例文件夹
cp -f /usr/local/apps/redis-4.0.1/redis.conf /usr/local/apps/redis-4.0.1/ redis-cluster/7001/
cp -f /usr/local/apps/redis-4.0.1/redis.conf /usr/local/apps/redis-4.0.1/ redis-cluster/7002/
cp -f /usr/local/apps/redis-4.0.1/redis.conf /usr/local/apps/redis-4.0.1/ redis-cluster/7003/
另一台服务器可复制至7004 7005 7006下

7、修改各实例文件夹中配置文件,将相应配置和实例文件夹名相对应
vi /usr/local/apps/ redis-4.0.1/redis-cluster/redis.conf

bind 192.168.1.132 (需要不同的服务器进行节点的联通,就不能设为127.0.0.1)
protected-mode no (需要不同的服务器进行节点的联通,就不能设为yes)
daemonize yes (设置后台运行redis)
cluster-enabled yes(开启集群,把#去掉)
cluster-node-timeout 15000 (设置请求超时时间,默认为15秒,可以自行修改)
appendonly yes (aop日志开启,会每次进行写操作都记录一条日志)
–根据不同的端口需要设置的地方
port 7001
pidfile /var/run/redis_7001.pid
logfile /var/log/redis/redis_7001.log
dbfilename dump_7001.rdb
appendfilename “appendonly_7001.aof”
cluster-config-file nodes_7001.conf
另一台服务器可做相应配置。

8、启动各个节点
cd /user/local/apps/redis-4.0.1/redis-cluster/
redis-server /usr/local/apps/redis-4.0.1/redis-cluster/7001/redis.conf
redis-server /usr/local/apps/redis-4.0.1/redis-cluster/7002/redis.conf
redis-server /usr/local/apps/redis-4.0.1/redis-cluster/7003/redis.conf

启动节点的时候配置文件中的日志目录不存在,需要自己创建一下;
同样启动另一台服务器的3个节点;

9、安装rvm
依次执行如下命令:
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -O https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer
curl -O https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer.asc
gpg --verify rvm-installer.asc &&
bash rvm-installer stable
source /usr/local/rvm/scripts/rvm

10、安装ruby
rvm install ruby-2.5.1

11、使用gem安装redis的ruby接口
gem install redis

12、防火墙策略
检查防火墙是否关闭,如果没有关闭则可以配置开通端口和集群总线端口
firewall-cmd --zone=public --add-port=7001-7003/tcp --permanent
firewall-cmd --zone=public --add-port=17001-17003/tcp --permanent (必须开集群总线端口,集群总线端口=端口号 +10000,例:7001的集群总线端口是17001。这个集群总线端口不开放,集群的时候外部服务器的节点添加不进来)
另一台服务器可做相应配置。

13、创建集群
redis官方提供了redis-trib.rb 这个工具,就这解压目录src目录中,第4步中已将它复制到/usr/local/apps/redis-4.0.1/bin/目录中,可以直接在命令行中使用。
cd /usr/local/apps/redis-4.0.1/bin/

redis-trib.rb create --replicas 1 192.168.204.132:7001 192.168.204.132:7002 192.168.204.132:7003 192.168.204.133:7004 192.168.204.133:7005 192.168.204.133:7006

Ruby会自动为你分配槽位和建立主从关系。 留意一下屏幕,会有一句(type ‘yes’ or accept),输入yes,回车。(意思是:接受自主分配三主三从)
如果最后出现
集群搭建成功

输入yes后我们可以看到
集群搭建成功

说明集群搭建成功。
如果出现
集群启动失败

一直出现省略号,说明另一台服务器的端口策略没通,一直在等那边的节点加入集群,请检查上诉配置以及防火墙;

14、验证集群
在第一台服务器上连接集群的某一端口(7001)节点,连接方式为:
redis-cli -h 192.168.204.132 -c -p 7001
在另一台服务器上连接某一端口(7004)节点,连接方式为:
redis-cli -h 192.168.204.133 -c -p 7004
(加参数 -c 可以连接到集群,因为redis.conf将bind改为了ip地址,所以 -h 不可以省略,两台服务器可连接任意7001—7006中任意端口)
在7001节点上执行命令 set hello redisCluster
在这里插入图片描述

在另一台服务器上7004节点执行命令查看key为‘hello’的内容 get hello
在这里插入图片描述

说明集群运行正常。

3.2 Redis配置

安装完成后需对redis进行配置,配置主要体现在redis.conf
daemonize:如需要在后台运行,把该项的值改为yes

pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址

bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项

port:监听端口,默认为6379

timeout:设置客户端连接时的超时时间,单位为秒

loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice

logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上

database:设置数据库的个数,默认使用的数据库是0

save:设置redis进行数据库镜像的频率

rdbcompression:在进行镜像备份时,是否进行压缩

dbfilename:镜像备份文件的文件名

dir:数据库镜像备份的文件放置的路径

slaveof:设置该数据库为其他数据库的从数据库

masterauth:当主数据库连接需要密码验证时,在这里设定

requirepass:设置客户端连接后进行任何其他指定前需要使用的密码

maxclients:限制同时连接的客户端数量

maxmemory:设置redis能够使用的最大内存

appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态

appendfsync:设置appendonly.aof文件进行同步的频率

vm_enabled:是否开启虚拟内存支持

vm_swap_file:设置虚拟内存的交换文件的路径

vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0

vm_page_size:设置虚拟内存页的大小

vm_pages:设置交换文件的总的page数量

vm_max_thrrads:设置vm IO同时使用的线程数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值