欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Redis5.0.7的部署与集群搭建

程序员文章站 2022-04-22 11:27:24
...

Redis5.0.7的部署与集群搭建

一、单机版部署

第一步:下载最新稳定版

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

第二步:解压

tar -zxvf redis-5.0.7.tar.gz

第三步:进入解压后文件夹并编译

$ cd redis-5.0.7
$ make

第四步:运行

$ src/redis-server

此时不是后台运行,需要另起一窗口,打开客户端进行测试:

[aaa@qq.com redis-5.0.7]# src/redis-cli 
127.0.0.1:6379> set foo hao
OK
127.0.0.1:6379> get foo
"hao"

此时单机版的已经构建完毕。接下来就是搭建集群。

二、集群版搭建

我有三台服务器

192.168.54.16,192.168.54.17,192.168.54.18

第一步:创建redis_cluster文件夹,在里面创建7000,8000文件夹

三台机器都做这个操作

mkdir redis_cluster
cd redis_cluster
mkdir 7000 8000
第二步:将redis.conf赋值进刚才创建的文件夹

三台机器都做这个操作

cp redis.conf redis_cluster/7000
cp redis.conf redis_cluster/8000
第三步:修改配置文件

6个节点里的配置文件:

redis集群配置
port  7000                                        //端口7000,7002,7003        
bind 本机ip                                       //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize    yes                               //redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
cluster-enabled  yes                           //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志(建议开发时开启) 

第四步:分别启动节点(三台机器、六个节点):
src/redis-server redis_cluster/7000/redis.conf
src/redis-server redis_cluster/8000/redis.conf
第五步:检查状态
ps -ef | grep redis
root     18923     1  0 15:00 ?        00:00:00 src/redis-server 192.168.54.16:7000 [cluster]
root     18928     1  0 15:00 ?        00:00:00 src/redis-server 192.168.54.16:8000 [cluster]

后面有[cluster]则是正常

第六步:创建集群
src/redis-trib.rb  create  --replicas  1  192.168.54.16:7000 192.168.54.16:8000 192.168.54.17:7000 192.168.54.17:8000 192.168.54.18:7000 192.168.54.18:8000

此时有了一个报错:(若是没有报错,直接去第八步)

/usr/bin/env: ruby: No such file or directory
第七步:解决异常(安装ruby)

这个报错异常明显是ruby未安装,此时我们安装上ruby应该就可以了。

yum -y install ruby ruby-devel rubygems rpm-build
gem install redis

继续报错:

ERROR:  Error installing redis:
	redis requires Ruby version >= 2.3.0.

问题分析:ruby版本过低

检查版本:

ruby -v
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]

解决措施:升级ruby。考虑到CentOS库里版本最高只有2.0.

所以从红宝石官网下载。

# 我这个是新服务器,所以首先下载curl,有的服务器可能不需要下载了
yum -y install curl
# 安装rvm:
# 从红宝石官网下载RVM:http://rvm.io/rvm/install
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
# 检查一哈
curl -L https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable
# 生效
source /usr/local/rvm/scripts/rvm
# RVM库中已知的红宝石版本
rvm list known
# 结果
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.10]
[ruby-]2.3[.8]
[ruby-]2.4[.6]
[ruby-]2.5[.5]
[ruby-]2.6[.3]
[ruby-]2.7[.0-preview1]
# 选择最近稳定版2.6.3
rvm install 2.6.3
# 使用2.6.3版本
rvm use 2.6.3
# 添加默认(有强迫症的人可以将2.0的卸载掉:rvm remove 2.0.0)
rvm use 2.6.3 --default
# 检查版本
ruby --v
第八步:继续创建集群
[aaa@qq.com redis-5.0.7]# gem install redis
Fetching redis-4.1.3.gem
Successfully installed redis-4.1.3
Parsing documentation for redis-4.1.3
Installing ri documentation for redis-4.1.3
Done installing documentation for redis after 1 seconds
1 gem installed
# 继续执行redis-trib.rb命令
src/redis-trib.rb  create  --replicas  1  192.168.54.16:7000 192.168.54.16:8000 192.168.54.17:7000 192.168.54.17:8000 192.168.54.18:7000 192.168.54.18:8000
# 提示redis5.0.7版本已经舍弃redis-trib.rb,再次使用redis-cli命令创建
redis-cli --cluster create 192.168.54.16:7000 192.168.54.16:8000 192.168.54.17:7000 192.168.54.17:8000 192.168.54.18:7000 192.168.54.18:8000 --cluster-replicas 1

接下来Can I set the above configuration? (type ‘yes’ to accept):

输入yes

第九步:结果

Redis5.0.7的部署与集群搭建

第十步:验证

进入随便一台服务器,启动任意一节点:

# 加参数 -C 可连接到集群,因为上面 redis.conf 将 bind 改为了ip地址,所以 -h 参数不可以省略。
src/redis-cli -h 192.168.54.16 -c -p 7000

执行结果是:

192.168.54.16:7000> set name haosc
-> Redirected to slot [5798] located at 192.168.54.17:7000
OK
192.168.54.17:7000> get name
"haosc"

可以看到存储值的时候,节点发生了变化。这正是因为集群的原因。接下来如果还有时间就详细说集群的特点与优势。