背景:
操作系统:centos
1. 下载redis安装包
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
2. 解压缩redis包
tar zxvf redis-4.0.10.tar.gz
3. 进入安装目录
cd redis-4.0.10
4. 进行编译
make
编译过程中,发现 gcc 未安装
需要临时安装 GCC
4.1. 使用 yum 安装 GCC
yum install gcc-c++ -y
可使用命令查看安装的 gcc 版本
再次执行 make 命令进行编译即可。
5. make 完成之后,会在src目录下生成 redis的服务程序 redis-server,以及用于测试的客户端程序 redis-cli,使用 redis-server 启动 redis 服务
cd src
./redis-server
如下所示:
配置集群
6. 创建集群文件夹,命名为 cluster
mkdir cluster cd cluster
在cluster目录里创建6个文件夹,以redis集群的实例端口号为名称,数据存放在 端口号/data 文件夹中
mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data
在cluster目录里创建bin文件夹,用来存放集群运行脚本,并把安装好的redis的src目录下的运行脚本拷贝到bin目录下,涉及到的脚本为:
mkreleasehdr.sh,redis-benchmark,redis-check-aof,redis-cli,redis-server,redis-trib.rb,
命令如下所示:
cp /data/redis/redis-4.0.10/src/{mkreleasehdr.sh,redis-benchmark,redis-check-aof,redis-cli,redis-server,redis-trib.rb} .
从已经安装好的redis中复制一个新的redis实例到9001-9006文件夹,并修改 redis.conf 配置
cp -r /data/redis/redis-4.0.10/* /data/redis/cluster/9002/
修改redis.conf 配置和单点redis唯一区别如下:
port 9001(每个节点的端口号) daemonize yes bind 10.101.96.18(绑定当前机器 IP) dir /data/redis/cluster/9001/data/(数据文件存放位置) pidfile /var/run/redis_9001.pid(pid 9001和port要对应) cluster-enabled yes(启动集群模式) cluster-config-file nodes_9001.conf(9001和port要对应) cluster-node-timeout 15000 appendonly yes
7. 进入/data/redis/bin目录,依次执行以下命令,启动集群中的各个redis实例
./redis-server /data/redis/cluster/9001/redis.conf ./redis-server /data/redis/cluster/9002/redis.conf ./redis-server /data/redis/cluster/9003/redis.conf ./redis-server /data/redis/cluster/9004/redis.conf ./redis-server /data/redis/cluster/9005/redis.conf ./redis-server /data/redis/cluster/9006/redis.conf
检查一下redis进程,确认是否都正常启动
ps -el | grep redis
随便找一个实例,进行读写测试
[root@gpap-prod-3 bin]# /data/redis/cluster/bin/redis-cli -h 10.101.96.28 -p 9001 10.101.96.28:9001> set name miao (error) CLUSTERDOWN Hash slot not served
报错了,因为虽然启动且配置了redis集群服务,但是他们暂时还不在一个集群内,互相直接发现不了,而且没有可存储的位置,即没有slot
安装redis集群需要的ruby和相关中间件,依次执行以下命令:
yum install ruby yum install rubygems gem install redis
执行第三个命令时,抛出异常,提示ruby版本太低,但是使用yum搜索ruby版本列表,2.0已是最高版本,如下所示:
所以需要换一种方式安装ruby,使用rvm安装ruby,首先去GitHub下载rvm的release稳定版
GitHub地址:https://github.com/rvm/rvm
本地下载之后,传到服务器上,解压缩之后,进入rvm目录,执行安装命令
./install --auto-dotfiles
使文件生效(/data是我的rvm安装目录)
source /data/rvm/scripts/rvm
安装成功,查看rvm版本
[root@gpap-prod-3 data]# rvm -v rvm 1.29.12 () by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
通过rvm进行ruby包管理,安装2.3版本的ruby(不要安装其他版本,有坑)
rvm install 2.3
安装完成之后,可以查看下ruby的版本
[root@gpap-prod-3 ~]# ruby -v ruby 2.3.8p459 (2018-10-18 revision 65136) [x86_64-linux]
再次执行之前报错的命令,顺利完成执行
[root@gpap-prod-3 ~]# gem install redis Fetching redis-4.4.0.gem Successfully installed redis-4.4.0 Parsing documentation for redis-4.4.0 Installing ri documentation for redis-4.4.0 Done installing documentation for redis after 0 seconds 1 gem installed
执行创建集群的命令,如下所示(--replicas 1 表示主从复制比例为1:1,即一个主节点对应一个从节点)
/data/redis/cluster/bin/redis-trib.rb create --replicas 1 10.101.96.28:9001 10.101.96.28:9002 10.101.96.28:9003 10.101.96.28:9004 10.101.96.28:9005 10.101.96.28:9006
输入命令后,会输出对应的主从节点(Master、Slave)的相关日志信息,如下所示:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架