Centos7 创建redis集群

本文详细介绍了在Centos7上安装Redis并构建集群的完整过程,包括下载与安装Redis、配置集群、解决搭建过程中遇到的问题,如NOAUTH认证问题、依赖缺失等,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、redis安装

(1)下载redis

命令如下:
    1、wget http://download.redis.io/releases/redis-4.0.10.tar.gz
    2、如果提示 未发现wget命令,请输入 yum install wget
    

(2)安装redis

命令如下:
    解压:tar -zxvf redis-4.0.10.tar.gz
    cd redis-4.0.10
    make MALLOC=libc  如果提示 gcc:未找到命令,则需要安装gcc:yum install gcc
    make install

(3)配置redis

redis安装成功之后需要几个地方:

修改 redis.conf 之后的结果:
daemonize yes  -- 运行redis从后台运行
#bind 127.0.0.1 --外网可以访问
requirepass 123@456  -- redis密码
protected-mode no --关闭保护模式

 (4)配置centos

关闭防火墙
systemctl stop firewalld.service --关闭防火墙
systemctl disable firewalld.service --禁止防火墙开机启动

(5)启动redis和关闭

关闭只要 ctrl+c就可以

进入redis:redis-cli -a 123@456  (-a 后面的是redis密码)

退出命令:exit

2、搭建集群

(1)集群原理

Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施installation。
Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行这些命令需要在多个 Redis 节点之间移动数据, 并且在高负载的情况下, 这些命令将降低Redis集群的性能, 并导致不可预测的行为。
Redis 集群通过分区partition来提供一定程度的可用性availability: 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。
Redis集群提供了以下两个好处:
            将数据自动切分split到多个节点的能力。
            当集群中的一部分节点失效或者无法进行通讯时, 仍然可以继续处理命令请求的能力

(2)集群规划

主节点:192.168.137.128:8001,192.168.137.128:8002,192.168.137.128:8003

从节点:192.168.137.128:8004,192.168.137.128:8005,192.168.137.128:8006

(3)集群配置

Redis集群管理工具redis-trib.rb依赖Ruby环境,首先需要安装ruby环境,由于Centos 库中的ruby版本太低,所有建议用以下方式重装:

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L get.rvm.io | bash -s stable
source /usr/local/rvm/script/rvm

(4)创建集群所需要的一些软件

rvm list known ---查看所有ruby

-- 选择最稳定的版本安装
rvm install 2.5.1
--安装redis依赖
gem install redis
--在redis 同级目录创建文件夹(redisCluster)
mkdir redisCluster
cp -f redis-4.0.10.tar.gz redisCluster/
cd redisCluster
tar -zxvf redis-4.0.10.tar.gz
cd redis-4.0.10
make MALLOC=libc
make install
cp -f ../redis-4.0.10/src/redis-trib.rb ../

--然后再redisCluster目录下创建子节点的文件夹(8001 .。。8006),将redis.conf复制其中,修改redis.conf中几个部分

port 8001  --节点端口号
#bind 127.0.0.1 --让本地可以访问
cluster-enable yes
cluster-config-file nodes-8001.conf --对应每个接口的文件
protected no 
daemonize yes 
requirepass 123456 --这个根据需要来,我这里就没加入,看安装的redis是否加入密码
masterauth 123456 --这个也是根据需要来

然后运行节点
cd redisCluster
redis-server 8001/redis.conf
redis-server 8002/redis.conf
redis-server 8003/redis.conf
redis-server 8004/redis.conf
redis-server 8005/redis.conf
redis-server 8006/redis.conf

(5)创建集群

redis-cli --cluster create ip:8001 ip:8002 ip:8003 ip:8004 ip:8005 ip:8006  --cluster-replicas 1

接下来以节点的方式进入: -a 表示密码  -c表示集群的方式

redis-cli -p 8001 -c (无密码的方式登录)

redis-cli -p 8001 -a 123456  -c (有密码的方式登录)

 

搭建集群所遇见的问题:

(1)使用redis搭建集群时遇到的问题:You should use redis-cli instead.

解决方案:

WARNING: redis-trib.rb is not longer available!
You should use redis-cli instead.

All commands and features belonging to redis-trib.rb have been moved to redis-cli.
In order to use them you should call redis-cli with the --cluster
option followed by the subcommand name, arguments and options.

Use the following syntax:
redis-cli --cluster SUBCOMMAND [ARGUMENTS] [OPTIONS]

Example:
redis-cli --cluster create 172.16.0.71:9001 172.16.0.71:9002 --cluster-replicas 1

解决方法:原本的命令./redis-trib.rb create --replicas 1 172.16.0.71:9001 172.16.0.71:9002 废弃了,提示改用redis-cli

换成./redis-cli --cluster create 127.0.0.1:6379..........便可以解决问题

(2)/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

解决方法

安装所有32位程序需要组件:
yum install xulrunner.i686

(3)Centos使用yum安装提示“没有可用软件包”

解决方法:

yum install -y epel-release

(4)CentOS 报错:yum-config-manager: 未找到命令

解决方法

这个命令在 yum-utils 包里,可以通过命令 yum -y install yum-utils 安装就可以了。

(5)Redis (error) NOAUTH Authentication required.解决方法

加入集群命令: redis-cli --cluster create 114.116.35.252:7000 114.116.35.252:7001 114.116.35.252:7002 114.116.35.252:7003 114.116.35.252:7004 114.116.35.252:7005  --cluster-replicas 1

需要加入密码

解决方法(命令的最后面加入 -a redis密码):

redis-cli --cluster create  114.116.35.252:7000  114.116.35.252:7001  114.116.35.252:7002  114.116.35.252:7003  114.116.35.252:7004  114.116.35.252:7005  --cluster-replicas 1 -a wzy123

(6)彻底解决【“curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused”】错误

解决方法:

  1. 打开 https://www.ipaddress.com/ 输入访问不了的域名()raw.githubusercontent.com,获得对应的IP。

  2. 使用vim /etc/hosts命令打开不能访问的机器的hosts文件,添加如下内容:

    199.232.68.133 raw.githubusercontent.com
    

    注:上面内容中199.232.68.133是raw.githubusercontent.com所在的服务器IP(通过 https://www.ipaddress.com/ 获知)。

  3. 保存该文件,再使用即可正常访问。

(7)本地无法连接Linux上redis解决步骤:(参考;https://www.cnblogs.com/xk920/p/12119376.html

1、本地和Linux IP互ping

2、关闭Linux防火墙

3、将redis.conf 中的protected-mode 修改no,注释 bind 127.0.0.1

4、添加Linux允许访问端口(参考:https://www.cnblogs.com/Adoni/p/12887983.html

firewall-cmd --zone=public --add-port=6379/tcp --permanent 返回success 成功

firewall-cmd --reload 返回success表示成功

firewall-cmd --query-port=6379/tcp

8、Redis集群之修改节点IP

(1)查看进程   ps -ef|grep redis

(2)杀死进程

kill -9 进程id

(3)删除节点中的 dump.rdb持久化文件和nodes.conf节点信息文件 (命令:rm -rf)

PS:(如果你的Redis.conf文件里开启并生成了appendonly.aof,你也必须删除它,因为不删除aof文件会和不删除rdb文件一样导致在接下来重新创建节点过程中出现原节点存在数据(Not Empty)异常)

接着:

在重建集群之前需要你依次将每个节点重新启动起来,否则会直接报错 [ERR] Sorry, can't connect to node

(4)创建集群

redis-cli --cluster create 192.168.137.129:8001 192.168.137.129:8002 192.168.137.129:8003 192.168.137.129:8004 192.168.137.129:8005 192.168.137.129:8006  --cluster-replicas 1

创建成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值