redis在centos安装+搭建使用Redis集群

本文详细介绍了如何在CentOS系统中安装Redis并搭建Redis集群。包括安装gcc依赖、下载安装Redis、设置开机启动、创建多个运行实例、部署Ruby环境,以及使用redis-trib创建和管理集群。

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

一 安装

1、安装gcc依赖

由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装

yum install -y gcc

2、下载并解压安装包

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

3、cd切换到redis解压目录下,执行编译

[root@localhost local]# cd root/redis-5.0.3

[root@localhost redis-5.0.3]# make

4、安装并指定安装目录

make install PREFIX=/usr/local/redis

5、启动服务

①前台启动

cd /usr/local/redis/bin/
./redis-server

②后台启动

从 redis 的源码目录(解压的目录,在root下)中复制 redis.conf 到 redis 的安装目录,用linux cp 命令

cp /root/redis-5.0.3/redis.conf  /usr/local/redis/bin/

修改 redis.conf 文件,把 daemonize no 改为 daemonize yes

[root@localhost bin]# vi redis.conf

[root@localhost bin]# ./redis-server redis.conf

6、设置开机启动

① 添加开机启动服务

vi /etc/systemd/system/redis.service

②复制粘贴以下内容:

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注意:ExecStart配置成自己的路径

③设置开机启动

systemctl daemon-reload
systemctl start redis.service
systemctl enable redis.service

④创建 redis 命令软链接(In命令为某一个文件在另外一个位置建立一个同步的链接。ln -s 源文件 目标文件)

ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis

测试 redis
在这里插入图片描述
服务操作命令

systemctl start redis.service   #启动redis服务
systemctl stop redis.service   #停止redis服务
systemctl restart redis.service   #重新启动服务
systemctl status redis.service   #查看服务当前状态
systemctl enable redis.service   #设置开机自启动
systemctl disable redis.service   #停止开机自启动

二 搭建redis集群

结合官网http://www.redis.cn/topics/cluster-tutorial.html的实施步骤

1 创建多个运行实例

1 切换到/usr/local/目录,新建cluster-test目录

cd  /usr/local/
mkdir cluster

2 在cluster目录新建6个目录7000 7001 7002 7003 7004 7005

mkdir  7000 7001 7002 7003 7004 7005

3、把redis.conf配置文件复制到上面创建的7000目录中

cp /root/redis-5.0.3/redis.conf  /usr/local/cluster-test/7000

4、修改7000中的配置文件

port 7000
pidfile /var/run/redis_7000.pid
dbfilename dump_7000.rdb
appendfilename "appendonly_7000.aof"
cluster-config-file nodes_7000.conf
dir /usr/local/cluster/7000/
cluster-node-timeout 15000
appendonly yes
cluster-enabled yes

!! 配置文件不要自己写注释,(尤其是同一行)会报错
文件没找到的配置,被注释掉了

5 启动7000端口

 redis-server /usr/local/cluster-test/7000/redis.conf

6 如果7000端口启动成功。。复制redis.conf到其他文件。修改7000为对应的端口号

 cp 7000/redis.conf  7001/

配置文件改5处7000改为自己的端口 sed -i ‘/7000/{s/7000/7005/}’ 7005/redis.conf
7.查看是否都启动成功

ps -ef|grep redis 

在这里插入图片描述

2 部署Ruby 环境
通过Redis 集群命令行工具 redis-trib , 编写节点配置文件的工作可以非常容易地完成: redis-trib 位于 Redis 源码的 src 文件夹中, 它是一个 Ruby 程序, 这个程序通过向实例发送特殊命令来完成创建新集群, 检查集群, 或者对集群进行重新分片(reshared)等工作。用RVM 轻松安装部署Ruby环境  

1.安装rvm(2步 )
①安装rvm(常常出现公钥丢失)首先要执行: 更新秘钥

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB   

②再执行curl命令:进行文件传输和下载

curl -sSL https://get.rvm.io | bash -s stable    

在这里插入图片描述

curl 下载报错:
查看网址[https://www.ipaddress.com/]查 raw.githubusercontent.com对应的IP 地址
vim /etc/hosts 增加 199.232.96.133 raw.githubusercontent.com
在这里插入图片描述
2 激活rvm 的环境变量:source命令

source /etc/profile.d/rvm.sh

3 选择ruby 版本+下载

rvm list known    # 查看版本
rvm install 2.4.4  # 安装2.4.4版本

在这里插入图片描述
4 确认版本号+ 设为默认版本(rvm命令)

ruby -v      
rvm use 2.4.4

在这里插入图片描述
5 用 gem 命令安装 redis

gem install redis

图片
ruby 是一种语言,是某些软件包代码的执行环境。gem 是管理这些基于ruby程序的程描述

3 集群搭建+基本操作(基于运行实例 + Ruby 环境)

1.创建集群
redis-trib 位于 Redis 源码的 src 文件夹中,切换到redis-trib文件夹下 PS:**./**一定要有,不然文件找不到

 ./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001  127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005  # 官网指令
 ./redis-cli --cluster  create --replicas 1 127.0.0.1:7000 127.0.0.1:7001  127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005  # 警告的  替换指令

选项–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。
报错:[ERR] Node 192.168.162.132:7001 is not configured as a cluster node
措施:redis.conf 中 cluster-enabled yes 的注释打开,再重启redis![在这里插入图片描述](https://img-blog.csdnimg.cn/20201221154730770.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NjMxNTE2,size_16,color_FFFFFF,t_7
在这里插入图片描述

2 验证集群

redis-cli -h 127.0.0.1 -c -p 7001    # 连接到7001端口
set test ye                                      # 使用set存测试值
redis-cli -h 127.0.0.1 -c -p 7002    # 到7002端口get取测试值
get test                                              

3 关闭集群

redis-cli -p 7001 shutdown   # 关闭

在这里插入图片描述
4 添加新节点 (新节点,是主节点,没有包含任何数据, 因为它没有包含任何哈希槽)

./redis-cli --cluster add-node 127.0.0.1:7005   127.0.0.1:7002   #第一个参数新节点的地址,第二个参数是任意已经存在的节点的IP和端口.

接下来, 只要使用 redis-trib 程序, 将集群中的某些哈希桶移动到新节点里面, 新节点就会成为真正的主节点了。

5查看集群节点

cluster nodes

在这里插入图片描述

报错:[ERR] Not all 16384 slots are covered by nodes.
原因:主node移除了,但是并没有移除node上面的slot,从而导致了slot总数没有达到16384,其实也就是slots分布不正确。所以在删除节点的时候一定要注意删除的是否是Master主节点
6 连接到集群

redis-cli -h 127.0.0.1 -c -p 7001  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值