Redis 集群搭建

Redis搭建集群模式 Redis 搭建集群的优缺点优点:支持数据的水平扩展,可以处理大规模数据提供高可用性,节点失效时能够自动进行故障转移高并发性能缺点:配置和管理复杂度较高不支持多键操作,某些命令在集群模式下受到限制需要更多的资源和节点来维持高可用性和性能。 阅读详情
转载:http://blog.youkuaiyun.com/jlh912008548/article/details/51226380

1.Redis 安装

在安装Redis 集群前。应该安装Redis.Redis 的详细安装,请浏览 http://blog.youkuaiyun.com/jlh912008548/article/details/51225057

2.Redis 集群介绍

2.1 redis-cluster架构图


[plain]  view plain  copy
  1. edis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value  
  2. Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点  


[plain]  view plain  copy
  1. Key:a  
  2. 计算a的hash值,例如值为100,100这个槽在server1上,所以a应该放到server1.  
  3.   
  4. Key:hello  
  5. Hash值:10032,此槽在server2上。Hell可以应该存在server2.  

2.2  redis-cluster投票:容错


[plain]  view plain  copy
  1. (1)领着投票过程是集群中所有master参与,如果半数以上master节点与master节点通信超过(cluster-node-timeout),认为当前master节点挂掉.  
  2. (2):什么时候整个集群不可用(cluster_state:fail)?   
  3.     a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成集群的slot映射[0-16383]不完成时进入fail状态. ps : redis-3.0.0.rc1加入cluster-require-full-coverage参数,默认关闭,打开集群兼容部分失败.  
  4.     b:如果集群超过半数以上master挂掉,无论是否有slave集群进入fail状态.  
  5.   ps:当集群不可用时,所有对集群的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)错误  

3 Redis集群搭建

3.1 我的集群结构

[plain]  view plain  copy
  1. <span style="font-size:14px;font-weight: normal;">集群中有三个节点的集群,每个节点有一主一备。需要6台虚拟机。  
  2. 搭建一个伪分布式的集群,使用6个redis实例来模拟。  
  3. 所有redis  都安装在一个虚拟机里,即共用一个Ip,端口不同。(端口分别为6379,7001,7002,7003,7004,7005,7006)</span>  

3.2搭建集群需要的环境

搭建集群需要安装Ruby 和Redis的接口
如果系统没有Ruby,那么 在搭建集群的时候会报如图所示的错误
[plain]  view plain  copy
  1. /usr/bin/env: ruby: No such file or directory  
如果系统没有Redis接口,那么在搭建的时候会报这样的错误
[plain]  view plain  copy
  1. /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)  
  2. from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'  
  3. from ./redis-trib.rb:25  

3.2.1Ruby 安装

yum install ruby

yum install rubygems

使用gcc编译安装请见: http://www.showerlee.com/archives/1123

3.2.2 Redis接口安装

方法一: 使用命令 gem install redis 。使用gem直接安装可能会出现网络不通,无法安装的情况,故推荐方法二。

方法二:离线安装

下载 redis-3.2.1.gem  这里给一个优快云 里的资源地址,免积分的:http://download.youkuaiyun.com/detail/lihcc/8722699

将redis-3.2.1.gem 包拷贝至 /usr/local 目录下

使用gem命令安装: gem install redis-3.0.0.gem 

3.2 Redis集群搭建

3.2.1 创建Redis实例

在Redis 安装目录下拷贝如下文件到一个新的文件夹(我命名为redis01,redis02....以此类推)


修改每个redis下的redis.conf  将 cluster-enabled 后的值设为 yes ,如图所示


在Redis 安装目录下拷贝ruby脚本(redis-trib.rb)拷贝到 redis01 的同级目录下


创建集群

[plain]  view plain  copy
  1. ./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003   
[plain]  view plain  copy
  1. 192.168.25.153:7004 192.168.25.153:7005  192.168.25.153:7006  
192.168.25.103 为虚拟机Ip.
如果没安装Rub 会报错 
[plain]  view plain  copy
  1. /usr/bin/env: ruby: No such file or directory  

解决方式见上文

创建Redis集群启动与停止文件

vim start.sh

输入以下内容

[plain]  view plain  copy
  1. cd redis01  
  2. ./redis-server redis.conf  
  3. cd ../redis02  
  4. ./redis-server redis.conf  
  5. cd ../redis03  
  6. ./redis-server redis.conf  
  7. cd ../redis04  
  8. ./redis-server redis.conf  
  9. cd ../redis05  
  10. ./redis-server redis.conf  
  11. cd ../redis06  
  12. ./redis-server redis.conf  
  13. cd ..  
vim shutdown.sh

输入以下内容

[plain]  view plain  copy
  1. redis01/redis-cli -p 7001 shutdown  
  2. redis02/redis-cli -p 7002 shutdown  
  3. redis03/redis-cli -p 7003 shutdown  
  4. redis04/redis-cli -p 7004 shutdown  
  5. redis05/redis-cli -p 7005 shutdown  
  6. redis06/redis-cli -p 7006 shutdown  
启动  ./start.sh

查看是否启动  命令 ps aux|grep redis 发现有

root      64055  0.0  0.9 137436  9464 ?        Ssl  12:44   0:08 ./redis-server *:7001 [cluster]

....

停止 ./shutdown.sh

查看是否停止 命令 ps aux|grep redis 发现没有启动后的内容,则说明停止成功



4 连接Redis

4.1图形化界面客户端   --  RedisDesktopManager

缺点:不能连接集群,智能连接一个单独的

4.2 redis-cli

使用Redis 自带的 redis-cli 连接

连接一个单独的Redis   :cd 到一个Redis 目录下 使用命令 ./redis-cli -h 192.168.204.131 -p 6379

连接集群则在其后加入一个 -c 即 ./redis-cli -h 192.168.204.131 -p 6379 -c


4.3 Jedis 连接(Java连接)

新建java项目 , 导入jedis.jar 包 下载地址:http://download.youkuaiyun.com/detail/teamlet/8914387

然后就是编写代码。这里我写一个小demo 给做个参考

[java]  view plain  copy
  1. import java.util.HashSet;  
  2. import java.util.Set;  
  3.   
  4. import org.junit.Test;  
  5.   
  6. import redis.clients.jedis.HostAndPort;  
  7. import redis.clients.jedis.Jedis;  
  8. import redis.clients.jedis.JedisCluster;  
  9. import redis.clients.jedis.JedisPool;  
  10.   
  11. public class JedisTest {  
  12.   
  13.     @Test  
  14.     public void testJedisSingle() {  
  15.         //创建jedis对象  
  16.         Jedis jedis = new Jedis("192.168.204.131", 6379);  
  17.         //调用jedis对象的方法,方法名称和redis 的命令一致  
  18.         jedis.set("key2", "jedis test2");  
  19.         String string = jedis.get("key1");  
  20.         System.out.println(string);  
  21.         //关闭jedis  
  22.         jedis.close();  
  23.     }  
  24.       
  25.       
  26.     /** 
  27.      *使用jedis连接池  
  28.      */  
  29.     @Test  
  30.     public void testJedisPool(){  
  31.         JedisPool jedisPool = new JedisPool("192.168.204.131", 6379);  
  32.         //获得jedis 连接对象  
  33.         Jedis jedis = jedisPool.getResource();  
  34.         System.out.println(jedis.get("key1"));  
  35.         jedis.close();  
  36.     }  
  37.     /** 
  38.      * 集群连接测试 
  39.      */  
  40.     @Test  
  41.     public void testJedisCluster(){  
  42.         Set<HostAndPort> nodes = new HashSet<>();  
  43.         nodes.add(new HostAndPort("192.168.204.131", 7001));  
  44.         nodes.add(new HostAndPort("192.168.204.131", 7002));  
  45.         nodes.add(new HostAndPort("192.168.204.131", 7003));  
  46.         nodes.add(new HostAndPort("192.168.204.131", 7004));  
  47.         nodes.add(new HostAndPort("192.168.204.131", 7005));  
  48.         nodes.add(new HostAndPort("192.168.204.131", 7006));  
  49.         JedisCluster cluster = new JedisCluster(nodes );  
  50.         cluster.set("key1", "1000");  
  51.         System.out.println(cluster.get("key1"));  
  52.     }  
  53. }  

至此,Redis 集群安装测试完结,感谢阅读。



以上为个人在安装配置Redis 时的经验,如有重复,望见谅。

超详细,多图文介绍redis集群方式并搭建redis伪集群 超多图文,对新手友好度极好。敲命令的过程中,难免会敲错,但为了截好一张合适的图,一旦出现一点问题,为了好的演示效果,就要从头开始敲。且看且珍惜。再认识redis集群前,若想先知道redis单机版的可查看,springboot整合redis。好了,下面开始了。每个redis实例可称为一个节点,安装redis并以默认端口启动是节点,不关闭,以另一个端口启动,是一个新节点。在另一台机器安装redis并启动,也是一个新节点。 阅读详情

相关推荐

Cursor+Playwright MCP实现UI全自动化,告别繁琐元素定位!

摘要:本文探讨了利用Cursor和PlaywrightMCP实现UI自动化测试的创新方法。通过将AI编程助手与浏览器自动化技术结合,解决了传统UI自动化测试中元素定位繁琐、维护成本高等痛点。文章详细介绍了项目架构设计、AI使用技巧(包括精准提问和编写.mdc规则文档),以及如何实现自然语言测试用例到自动化脚本的转换。最终实现了测试人员只需输入手工测试步骤,AI即可自动生成完整测试代码的智能化流程,并展望了通过Excel表格一键生成测试用例的未来发展方向,为UI自动化测试提供了高效解决方案。

baidu_29774881的博客 2793

Redis集群报错cluster_state:fail,如何解决并重新恢复集群(IP问题/ slot未完全分配问题)

Redis集群报错cluster_state:fail,如何解决并重新恢复集群(IP问题/ slot未完全分配问题)

非著名运维的博客 9950

AD5940阻抗测量开发板实战:从源码获取到工程调试全解析

本文详细解析了AD5940阻抗测量开发板的实战应用,从源码获取到工程调试的全过程。AD5940作为ADI公司的高精度阻抗测量前端芯片,适用于生物阻抗分析、电化学传感器等领域。文章提供了开发环境搭建、工程配置、常见问题排查及进阶调试技巧,帮助开发者快速掌握AD5940开发板的使用方法。

weixin_30919429的博客 212

redis cluster info显示cluster_state:fail解决方案

1、查看错误信息: 1.1 错误信息(1) 127.0.0.1:7000&gt; get name (error) CLUSTERDOWN The cluster is down 127.0.0.1:7000&gt; cluster info cluster_state:fail cluster_slots_assigned:16380 cluster_slots_ok:16380 cluste...

liuyinfei_java的博客 9286

HTTPS接口测试翻车实录:为什么浏览器能访问而curl报证书错误?

本文深入分析了HTTPS接口测试中浏览器访问正常而curl报证书错误的典型问题。通过对比浏览器、Postman和curl的工具行为差异,结合Nginx日志与Wireshark抓包,揭示了问题根源在于网络架构中HTTPS请求被意外“降级”为HTTP传输,导致SSL握手失败。文章重点探讨了curl工具严格验证机制暴露的`Peer's Certificate issuer is not recognized`错误,并提供了网络配置修正方案与标准化测试流程。

u9v0w的博客 278

【1.2】Costas环的基本原理概述

Costas环是一种用于载波恢复的相干解调技术,可直接从BPSK等抑制载波信号中恢复本地载波并完成解调。其核心结构包含同相/正交双支路处理,通过混频、低通滤波后,利用I/Q支路信号乘积进行相位误差检测,经环路滤波器调节VCO输出频率,实现载波同步。课程将重点讲解Costas环的MATLAB仿真实现、系统性能分析及FPGA开发,包括信号产生、频偏模拟、滤波器设计等模块,并通过AWGN信道和不同频偏条件下的测试验证系统性能。该技术无需单独提取载波,在数字通信系统中具有重要应用价值。

fpga/matlab/simulink算法仿真工程 450

redis cluster:cluster_state:fail/(error) CLUSTERDOWN The cluster is down

场景: pt环境下研发反馈说redis集群down 掉了,报(error)CLUSTERDOWNTheclusterisdown 由于是在k8s 里运行redis-cluster,随便登录上其中一个节点去查询,发现在82这个节点上cluster_state状态是fail,那么问题就定位到82这台机器上,网上也搜索了一下问题原因好像是slots不连续造成的,那试着网上的办法去解决: 1.登录出现问题的那个节点,运行cluster info 10.42.230.82:6379> c...

雨花石 4267

YOLOv11 快速入门指南 | 10分钟吃透网络结构与新特性

2024 年 9 月 30 日,Ultralytics 发布了 YOLOv11,这是继 YOLOv8、v9、v10 之后的最新一代实时目标检测模型。 与前几代相比,YOLOv11 在保持“单阶段、实时、端到端”三大基因的同时,带来了两大核心升级:一句话总结:YOLOv11 = 更快 + 更准 + 更少参数。 2.2 微观单元:C3k2 与 C2PSA 2.2.1 C3k2 模块 作用:替换 YOLOv8 的 C2f,做跨阶段局部特征融合。 核心代码(ultralytics/nn/modules/block

shrgegrb的博客 1407

cluster_state:fail error clusterdown hash slot not served redis集群启动失败 解决办法

cluster_state:fail error clusterdown hash slot not served redis集群启动失败 解决办法 在虚拟机上架设了redis集群,三台虚拟机,一共六个节点,每个虚拟机上分别使用 6379,6380端口。由于死机导致非法关闭,然后集群就起不来了,报error  clusterdown hash slot not served的

yinbucheng的博客 1万+

echarts 饼图(加载进度条动画效果)

1、外侧动画细线效果运动“custom”自定义系列中“renderItem”属性来实现,动态修改起始角度和终止角度。2、圆环使用" pie "类型添加两个data值来画百分比圆环,动态修改data中的值。

God's asylum的博客 1630

利用pytorch长短期记忆网络LSTM实现股票预测分析

长短时记忆网络(Long Short Term Memory Network, LSTM),是一种改进之后的循环神经网络,可以解决RNN无法处理长距离的依赖的问题,目前比较流行。LSTM主要就是加入了三个门控:第一个开关遗忘门:负责控制继续保存长期状态c;第二个开关输入门:负责控制把即时状态输入到长期状态c;第三个开关输出门:负责控制是否把长期状态c作为当前的LSTM的输出。

优快云 精品推荐 1万+

Windows下搭建Redis集群

一、首先下载好Redis的Windows版本,注意:Redis只有3.0之后的版本才有集群 1、下载好后直接解压,可看到这些目录   2、在解压的目录启动redis-server.exe启动redis服务,出现下图的效果则说明redis服务启动成功   二、搭建Redis集群   首先构建集群的节点目录,注意:集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时, 强...

青衫 2万+

Oracle EBS 如何处理MMT表错误-WIP 实体未定义或不具有期间余额项

错误说明:WIP 实体未定义或不具有期间余额项。(The wip entity is either not defined or does not have a period balance entry)由于工单的创建日期为4月份,工单的余额表记录的期间是4月份,而3月份工单余额表中没有记录。公司将上一个新的库存组织,有一部分测试的工单创建日期在4月份,而工单的发放日期、发料事务处理日期和完工事务处理日期均在3月份。1、关闭3月份库存会计期,待定事务处理存在未计成本物料/WMS。成本类型: PAC成本。

陈显平的专栏-Oracle EBS 651

Redis集群搭建(非常详细)

https://blog.youkuaiyun.com/qq_42815754/article/details/82912130 redis集群搭建 在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件; 进入到解压缩后的redis文件目录(此时可以看到Makefile文件),编译redis源文件; 把编译好的redis源文件安装到/usr/local/redis目录下,如果/local目录下没有redis目录,会自动新建r

yygr的博客 2万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Redis集群搭建

Redis Cluster 是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务区上,以此来降低系统对单主节点的依赖,并且可以大大的提高 Redis 服务的读写性能。Redis 将所有的数据分为 16384 个 slots(槽),每个节点负责其中的一部分槽位,当有 Redis 客户端连接集群时,会得到一份集群的槽位配置信息,这样它就可以直接把请求命令发送给对应的节点进行处理。

开源驱动,创造价值;坦诚清晰,快速失败;让复杂可计算。 934

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【Redis 集群搭建】

redis 安装 redis 集群linux 安装

weixin_43836340的博客 3106

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

搭建Redis集群

新的的命令:redis-cli --cluster create 192.168.40.101:7000 192.168.40.101:7001 192.168.40.101:7002 192.168.40.101:7003 192.168.40.101:7004 192.168.40.101:7005 --cluster-replicas 1。- cluster-config-file nodes-7000.conf //集群节点配置文件。2.默认情况下该节点就是以master节点形式添加。

2401_86341340的博客 963

Redis集群之cluster搭建

redis主从集群,哨兵集群,可以应对高并发读的场景,但是高并发写与海量数据存储的问题依然不能解决,主从之间数据同步的缺陷就限制了主服务器内存不能设置的太高,为解决并发写与高可用的问题引入了分片集群(cluster)Cluster集群模式也被称为切片集群是Redis官方推荐使用的一种模式,Cluster方案采用哈希槽(hash slot)来处理实例之间的映射关系,在集群中总共有16384个哈希槽,默认形式是将16384个哈希槽分配给所有的节点,即哈希槽与集群节点绑定。

weixin_45476104的博客 2313

Redis集群的搭建

Redis集群的搭建 目录 Redis集群的搭建 Redis Cluster的安装步骤 1.先在目录下创建五个文件夹(如果跨服务器搭建集群,必须绑定127.0.0.1和网卡ip自己的) 2.更改redis.conf配置文...

LiuY521的博客 893

Redis 集群搭建详细指南

Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。Redis 集群采用了P2P的模式,完全去中心化。Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis 实例负责其中一部分 slot。

2401_86940371的博客 1579

redis搭建 和 redis集群搭建

redis搭建 1.首先安装环境,需要在联网情况下 yum install gcc-c++ 2.使用xftp将redis的tar包上传到虚拟机中,在这里我新建了一个software文件夹用来存放上传的文件。 切换到根目录里 mkdir software 3.解压缩redis的tar包 tar zxf redis-3.0.0.tar.gz 4.切换到解压缩的redis目录里面,使用make进行编译 ...

GEEK-BANANA 282

Redis搭建集群

Redis搭建集群

998
上一篇: linux root给其他用户赋予某个文件夹权限
下一篇: [ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes (check with CL
琅琊山二当家
博客等级 码龄18年 447粉丝 322原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值