本机Linux环境部署redis单机模式和集群模式

ps:博主只是自己在本地部署着玩的,并不是专业运维人员,顺便说一下部署的过程中踩过的一些坑

redis单机模式的搭建

ps:单机模式部署非常简单,大致说一下就好了

1.首先去官网下载一个3.0以上的redis包,因为redis3.0以上才支持集群模式

下载地址:https://redis.io/download

2.将下载文件放到/usr/local

(这里使用文件传输工具,直接将下载的redis压缩包放在该目录下)

3.解压redis压缩包(博主下载的是3.0.0的)

tar -zxvf redis-3.0.0.tar.gz

4.进入到解压后的redis文件夹内

cd /usr/local/redis-3.0.0

5.进行编译命令

make

这个时候如果没有安装gcc的话会报gcc:命令未找到之类的错误,如果报类似错误的话就输入一下命令

yum -y install gcc automake autoconf libtool make

如果装完gcc在make过程中仍报缺少包或者什么错误建议删去解压后的文件重新解压,问题全部解决

6.将该redis安装到指定的目录

cd /usr/local/redis-3.0.0

make PREFIX=/usr/local/redis install

7.进入redis目录,将redis.conf拷贝到安装路径:cd /usr/local/redis

mkdir conf

cp /usr/local/redis-3.0.0/redis.conf /usr/local/redis/bin

8.启动redis:
cd /usr/local/redis ./bin/redis-server ./redis.conf //在何处启动的server,一些配置文件就默认在该处生成(如果配置的相对路径)

至此redis单机就已经配置完毕了,下面开始配置redis集群模式

redis集群模式的搭建

1.首先要安装ruby环境

安装ruby:

yum install ruby

安装rubygems环境:

yum install rubygems

(这两步是安装redis集群的必备环境,这是由于集群管理工具redis-trib.rb依赖ruby环境)

2.安装ruby和redis的接口程序

(ps:这里就需要使用gem包了,但是这个包目前已经绝版了,不过在网上还是可以下载到的,下面给出链接和教程)

2.1 下载ruby环境下Redis的驱动

(ps:这里驱动包和redis并不是非要严格控制成相同版本,可以版本不同,这里下载的是3.2.2版本)

驱动链接:https://rubygems.org/gems/redis/versions/3.2.2

在这里插入图片描述

点击下载后就行了。。。。回到正题

拷贝下载好的redis-3.2.2.gem至/usr/local。执行:

gem install /usr/local/redis-3.2.2.gem

这里可能会报ERROR: Error installing redis redis requires Ruby version >= 2.2.2.的错误

说明这里的ruby版本过低,系统默认的是2.0.0,我们需要使用高于2.2.2版本的

所以需要将 ruby 版本升级到 2.2.2 或以上

解决办法:

首先我们需要安装curl,因为RVM需要通过CURL来进行下载

yum install curl

安装curl完成后,使用curl安装rvm

curl -L get.rvm.io | bash -s stable

关于RVM的安装方法,除了以上安装方法,《 ruby 中国官网 》也介绍了RVM的安装,安装方法如下:
这里所有的命令都是在用户权限下操作的,任何命令最好都不要用 sudo,
[root@localhost ~]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
[root@localhost ~]# curl -sSL https://get.rvm.io | bash -s stable

查看rvm中管理的所有ruby版本

source /usr/local/rvm/scripts/rvm

rvm list known

选择一个你喜欢的版本进行安装,但首先提醒一下,你所选择的版本不能低于 " 2.0.0 " 就可以了,输入命令 " rvm install 2.3.4 " 进行安装

使用刚才安装完成的Ruby版本,输入命令 " rvm use 2.3.4 "

移除系统中默认的版本号,输入命令 " rvm remove 2.0.0 " 进行移除

为了保险起见还是要检查一下(我个人习惯),输入命令 " ruby --version "

3.建立redis集群节点

(1)建立存放redis群的文件夹及子文件夹(用于存放每个redis节点,我创建了6个,三主三从):

cd /usr/local

mkdir redis-cluster

mkdir redis-cluster/7001

mkdir redis-cluster/7002

mkdir redis-cluster/7003

mkdir redis-cluster/7004

mkdir redis-cluster/7005

mkdir redis-cluster/7006

(2)将刚刚安装的单机redis的/usr/local/redis文件夹拷贝到每个700X文件夹下

cp /usr/local/redis /usr/local/redis-cluster/7001

(3)修改每个700X目录下的redis.conf配置文件:

port 700X //各自监听的端口
#bind 127.0.0.1 //这里不绑定,默认允许所有ip访问,或者bind 0.0.0.0
cluster-enabled yes //开启集群
cluster-node-timeout 15000 //15时间内没有收到对方的回复,则单方面认为端节点挂掉

4.启动各个redis:分别进入7001、7002、…7006目录,执行

./redis-server ./redis.conf

执行该命令时可能会出现权限不足的错误,可以执行以下命令去各个子节点下来修改

chmod -R 777 路径

-R 表示递归

777 表示权限级别(不懂得可以百度下)

路径 表示redis-server和redis.conf的所在文件夹(尽量只修改这两个文件所在的文件夹权限)

5.创建集群:
进入到redis-trib.rb所在的目录,一般情况下经过前几步后会自动生成redis-trib.rb文件,但是有时候可能哪里会出现问题不能生成该文件,这个时候可以去网上下载一个,这里没有严格要求

下载Redis官方提供的创建Redis集群的ruby脚本文件redis-trib.rb,路径如下:

https://raw.githubusercontent.com/MSOpenTech/redis/3.0/src/redis-trib.rb

打开该链接如果没有下载,而是打开一个页面,那么将该页面保存为redis-trib.rb

通过文件传输上传到liunx中的redis-cluster目录下

6.执行创建集群的命令

ruby ./redis-trib.rb create --replicas 1 172.16.3.195:7001 172.16.3.195:7002 172.16.3.195:7003

172.16.3.195:7004 172.16.3.195:7005 172.16.3.195:7006

(ps:由于我们在redis.conf里没有绑定任何ip因此正常来讲是可以允许任何ip进行访问的,所以这里你尽量设置成本地能访问的ip,因为我本地能和虚拟机相互ping通,所以这里我设置的是我虚拟机的ip)

(ps:如果无法ping通建议看一下本机和虚拟机的防火墙有没有关闭

一、iptables防火墙
1、基本操作

查看防火墙状态

service iptables status

停止防火墙

service iptables stop

启动防火墙

service iptables start

重启防火墙

service iptables restart

永久关闭防火墙

chkconfig iptables off

永久关闭后重启

chkconfig iptables on

二、firewall防火墙
1、查看firewall服务状态

systemctl status firewalld

出现Active: active (running)切高亮显示则表示是启动状态。

出现 Active: inactive (dead)灰色表示停止,看单词也行。
2、查看firewall的状态

firewall-cmd --state
3、开启、重启、关闭、firewalld.service服务

开启

service firewalld start

重启

service firewalld restart

关闭

service firewalld stop

ps:replicas指定为1表示每个主节点有一个从节点 ,如果为0的话那么建立的就全是master

(1)如果出现[ERR] Sorry, can’t connect to node错误:

 1.ruby 和rubygem 版本太低,安装新版本。查看gem版本和redis版本(redis-cli -v可查看redis版本)

 2.查看reids配置文件,bind绑定的允许连接的ip是否正确。

 3.是否redis配置文件还是使用了密码,使用了密码也可能导致这个错误。

(2)如果出现[ERR] Node 127.0.0.1:7005 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0:

表示集群时,之前的redis已有数据,那么登录到7005的redis中,执行FLUSHALL即可

(3)如果出现ERR Slot 0 is already busy (Redis::CommandError):

用redis-cli登录到每个节点执行flushall和cluster reset即可2.6进入集群:./redis-cli -c -p 7001 -h 172.16.3.195(-c即-cluster 表示进入集群模式,不加表示进入单机redis)

7.检查集群是否成功:随便选择700X文件夹进入到redis-cli所在的文件夹内

./redis-cli -c -p 7001 -h 172.16.3.195进入集群

进入集群后,键入cluster info,显示cluster_state:ok,表示成功

键入cluster nodes,将会显示ip的主从信息

Windows环境下部署redis集群:

https://www.cnblogs.com/tommy-huang/p/6240083.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值