Redis| Redis 3.0 集群搭建

2024-06-09 12:18
文章标签 redis 3.0 集群 搭建

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

在redis3.0以前,提供了Sentinel工具来监控各Master的状态,如果Master异常,则会做主从切换,将slave作为master,将master作为slave。
其配置也是稍微的复杂,并且各方面表现一般。

现在redis3.0已经支持集群的容错功能,并且非常简单。下面我们来进行学习下redis3.0如何搭建集群。

集群搭建:至少要三个master


第一步:创建一个文件夹redis-cluster,然后在其下面分别创建6个文件夹如下:
(1)mkdir -p /usr/local/redis-cluster
(2)mkdir 7001、mkdir 7002、mkdir 7003、mkdir 7004、mkdir 7005、mkdir 7006

第二步:把之前的redis.conf配置文件分别copy到700下,进行修改各个文件内容,也就是对700下的每一个copy的redis.conf文件进行修改!如下:
(1)daemonize yes
(2)port 700*(分别对每个机器的端口号进行设置)
(3)bind 192.168.1.171(必须要绑定当前机器的ip,不然会无限悲剧下去哇…深坑勿入!!!)
(4)dir /usr/local/redis-cluster/700*/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据,深坑勿入!!!)
(5)cluster-enabled yes(启动集群模式,开始玩耍)
(6)cluster-config-file nodes700*.conf(这里700x最好和port对应上)
(7)cluster-node-timeout 5000
(8)appendonly yes

第三步:注意每个文件要修改端口号,bind的ip,数据存放的dir,并且nodes文件都需要进行修改!

第四步:由于redis集群需要使用ruby命令,所以我们需要安装ruby
(1)yum install ruby
(2)yum install rubygems
(3)gem install redis (安装redis和ruby的接口)

第五步:分别启动6个redis实例,然后检查是否启动成功
(1)usr/local/redis/bin/redis-server /usr/local/redis-cluster/700*/redis.conf
(2)ps -el | grep redis 查看是否启动成功

第六步:首先到redis3.0的安装目录下,然后执行redis-trib.rb命令。
(1)cd /usr/local/redis3.0/src
(2)./redis-trib.rb create --replicas 1 192.168.1.171:7001 192.168.1.171:7002 192.168.1.171:7003 192.168.1.171:7004 192.168.1.171:7005 192.168.1.171:7006

说明: 1 代表主节点与从节点个数的比值, 所有主节点的顺序写在前面,后面写从节点,而且主节点和从节点的顺序都是一一对应的的顺序,比如1,2,3是主节点,4,5,6是从节点.

在这里插入图片描述
第七步:到此为止我们集群搭建成功!进行验证:
(1)连接任意一个客户端即可:./redis-cli -c -h -p(-c表示集群模式,指定ip地址和端口号)如:/usr/local/redis/bin/redis-cli -c -h 192.168.1.171 -p 700*
(2)进行验证:cluster info(查看集群信息)、cluster nodes(查看节点列表)
查看节点列表:
在这里插入图片描述

(3)进行数据操作验证
在这里插入图片描述

测试集群环境中,不在同一个主从关系中的节点获取数据:
7001不在主从关系中(7005是7002的从节点,7002是主节点)
这里我们通过keys *是获取不到数据的,但是我们get值的时候还是能获取得到7002主节点中的数据(数据存储会随机的存放在集群的主节点的槽点中),这就是集群的作用.
在这里插入图片描述
(4)关闭集群则需要逐个进行关闭,使用命令:usr/local/redis/bin/redis-cli -c -h 192.168.1.171 -p 700* shutdown

第八步:(补充)
友情提示:当出现集群无法启动时,删除临时的数据文件,再次重新启动每一个redis服务,然后重新构造集群环境。

第九步:(集群操作文章)
redis-trib.rb官方群操作命令: http://redis.io/topics/cluster-tutorial
推荐博客: http://blog.51yip.com/nosql/1726.html/comment-page-1

这篇关于Redis| Redis 3.0 集群搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

Windows/macOS/Linux 安装 Redis 和 Redis Desktop Manager 可视化工具

本文所有安装都在macOS High Sierra 10.13.4进行,Windows安装相对容易些,Linux安装与macOS类似,文中会做区分讲解 1. Redis安装 1.下载Redis https://redis.io/download 把下载的源码更名为redis-4.0.9-source,我喜欢跟maven、Tomcat放在一起,就放到/Users/zhan/Documents

为什么要做Redis分区和分片

Redis分区(Partitioning)和分片(Sharding)是将数据分布在多个Redis实例或多个节点上的做法。这种技术用于提高性能、可扩展性和可用性。以下是执行Redis分区和分片的主要原因: 1. **提高吞吐量**:    - 通过将数据分散到多个节点,可以并行处理更多的操作,从而提高整体吞吐量。 2. **内存限制**:    - 单个Redis实例的内存是有限的。分区允许数据

【网络安全的神秘世界】搭建dvwa靶场

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 下载DVWA https://github.com/digininja/DVWA/blob/master/README.zh.md 安装DVWA 安装phpstudy https://editor.csdn.net/md/?articleId=1399043

如何理解redis是单线程的

写在文章开头 在面试时我们经常会问到这样一道题 你刚刚说redis是单线程的,那你能不能告诉我它是如何基于单个线程完成指令接收与连接接入的? 这时候我们经常会得到沉默,所以对于这道题,笔者会直接通过3.0.0源码分析的角度来剖析一下redis单线程的设计与实现。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源

Redis-在springboot环境下执行lua脚本

文章目录 1、什么lua2、创建SpringBoot工程3、引入相关依赖4、创建LUA脚本5、创建配置类6、创建启动类7、创建测试类 1、什么lua “Lua”的英文全称是“Lightweight Userdata Abstraction Layer”,意思是“轻量级用户数据抽象层”。 2、创建SpringBoot工程 3、引入相关依赖 <?xml version

cocospod 搭建环境和使用

iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $gem sources -a https://ruby.taobao.org/ 3.验证新源是否替换成功 $gem sources -l 4.安装CocoaPods (1)  $sudo gem

Apache2.4+PHP7.2环境搭建

Editplus生成码:http://www.jb51.net/tools/editplus/ 阿帕奇下载地址:https://www.apachehaus.com/cgi-bin/download.plx PHP下载地址:http://windows.php.net/download#php-7.2 1.打开阿帕奇的下载地址,点击下载。

大型网站架构演化(四)——使用应用服务器集群改善网站的并发能力

使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去更换更强大的服务器,对大型服务器而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求。这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力。 对网站架构而言,只要能通过增加一台服务器的方式改善负载压力,就可以以同样的方式持续增加服务器不断改善系统性能,从而实现系统

redis切换数据库的方法【jedis】

package com.test;import redis.clients.jedis.Jedis;public class readredis {public static void main(String[] args) {// 连接本地的 Redis 服务Jedis jedis = new Jedis("127.0.0.1", 6379);jedis.select(10);String v