redis-cluster 集群搭建和迁移(一)

2024-08-22 20:32

本文主要是介绍redis-cluster 集群搭建和迁移(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近给公司搭建了一个redis-cluster集群,把原来的单实例的数据迁移到了集群上,踩了一些坑,记录一些

使用的redis 版本是5.0.5 

操作系统  centos7

安装redis-cluster集群需要ruby环境, centos7  yum 源中的ruby  版本太低,不能安装redis,所以必须离线安装。我选择的版本是2.5.3

一.安装ruby

wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.gz
tar zxvf ruby-2.5.3.tar.gz
cd ruby-2.5.3
./configure --prefix=/usr/local/ruby
make
make install
/usr/local/ruby/bin/ruby -v
echo "export PATH=$PATH:/usr/local/ruby/bin" >> /etc/profile
source /etc/profile
echo $PATH

安装好ruby 之后并不能使用 gem install redis 来安装插件,还需要安装 zlib 环境和 openssl 环境

二.安装zlib环境

cd ruby-2.5.3/ext/zlib
ls
ruby ./extmk.rb 
make
yum -y install zlib-devel
gem install redis
cd zlib/
ls
ruby ./extconf.rb 
vim Makefile

打开Makefile文件,这段修改
#zlib.o: $(top_srcdir)/include/ruby.h
zlib.o: ../../include/ruby.h

make
make install

三.安装openssl 环境

cd ruby-2.5.3/ext/openssl
yum install openssl-devel -y
ruby ./extconf.rb
make
vim Makefile 

打开Makefile文件,头文件加上
top_srcdir = ../..

make
make install

四.gem 安装redis 插件

gem install redis

五.编译安装redis

mkdir /usr/local/redis
cd /usr/local/redis/上传redis tartar -xvf redis-5.0.5.tar.gz 
cd redis-5.0.5/
make
make install
cd ..
cd redis-5.0.5/
cd src/
./redis-server 

六.配置cluster集群,我这边创建了6个节点

cd /usr/local/redis/redis-5.0.5/src/
./redis-cli 
mkdir redis_cluster
cd redis_cluster/
mkdir 9000 9001 9002 9003 9004 9005cp redis.conf ./redis_cluster/9000
cp redis.conf ./redis_cluster/9001
cp redis.conf ./redis_cluster/9002
cp redis.conf ./redis_cluster/9003
cp redis.conf ./redis_cluster/9004
cp redis.conf ./redis_cluster/9005

七.修改配置文件,所有的节点的配置文件都改一遍

vim redis.confport 9001 //端口9001
daemonize yes //redis后台运行
pidfile ./redis_9001.pid //pidfile文件对应9001
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_9001.conf //集群的配置 配置文件首次启动自动生成 9001
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
bind 192.168.53.134 //绑定的ip,我写的是写本机内网ip//若设置密码,master和slave需同时配置下面两个参数:
masterauth "12345678"    //连接master的密码
requirepass "12345678"    //自己的密码

八.启动所有节点

//进入各个节点的目录启动实例 启动所有节点
/usr/local/redis/redis-5.0.5/src/redis-server /usr/local/redis/redis-5.0.5/redis_cluster/9000/redis.conf
/usr/local/redis/redis-5.0.5/src/redis-server /usr/local/redis/redis-5.0.5/redis_cluster/9001/redis.conf
/usr/local/redis/redis-5.0.5/src/redis-server /usr/local/redis/redis-5.0.5/redis_cluster/9002/redis.conf
/usr/local/redis/redis-5.0.5/src/redis-server /usr/local/redis/redis-5.0.5/redis_cluster/9003/redis.conf
/usr/local/redis/redis-5.0.5/src/redis-server /usr/local/redis/redis-5.0.5/redis_cluster/9004/redis.conf
/usr/local/redis/redis-5.0.5/src/redis-server /usr/local/redis/redis-5.0.5/redis_cluster/9005/redis.conf

九.创建集群,测试

./redis-cli --cluster create 192.168.53.134:9000 192.168.53.134:9001 192.168.53.134:9002 192.168.53.134:9003 192.168.53.134:9004 192.168.53.134:9005./redis-cli -h 192.168.53.134 -p 9000 -c

 

这篇关于redis-cluster 集群搭建和迁移(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097319

相关文章

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S

redis+lua实现分布式限流的示例

《redis+lua实现分布式限流的示例》本文主要介绍了redis+lua实现分布式限流的示例,可以实现复杂的限流逻辑,如滑动窗口限流,并且避免了多步操作导致的并发问题,具有一定的参考价值,感兴趣的可... 目录为什么使用Redis+Lua实现分布式限流使用ZSET也可以实现限流,为什么选择lua的方式实现

Redis中管道操作pipeline的实现

《Redis中管道操作pipeline的实现》RedisPipeline是一种优化客户端与服务器通信的技术,通过批量发送和接收命令减少网络往返次数,提高命令执行效率,本文就来介绍一下Redis中管道操... 目录什么是pipeline场景一:我要向Redis新增大批量的数据分批处理事务( MULTI/EXE

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Redis中的常用的五种数据类型详解

《Redis中的常用的五种数据类型详解》:本文主要介绍Redis中的常用的五种数据类型详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis常用的五种数据类型一、字符串(String)简介常用命令应用场景二、哈希(Hash)简介常用命令应用场景三、列表(L

Redis解决缓存击穿问题的两种方法

《Redis解决缓存击穿问题的两种方法》缓存击穿问题也叫热点Key问题,就是⼀个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击,本文给大家介绍了Re... 目录引言解决办法互斥锁(强一致,性能差)逻辑过期(高可用,性能优)设计逻辑过期时间引言缓存击穿:给

Redis中如何实现商品秒杀

《Redis中如何实现商品秒杀》:本文主要介绍Redis中如何实现商品秒杀问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录技术栈功能实现步骤步骤一:准备商品库存数据步骤二:实现商品秒杀步骤三:优化Redis性能技术讲解Redis的List类型Redis的Set