Redis-03-集群搭建
基于redis-3.2.4的Redis-Cluster集群搭建
原理
Redis 集群采用了P2P的模式,完全去中心化。Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis 实例负责其中一部分 slot 。集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。
Redis 客户端可以在任意一个 Redis 实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。
任何两个节点之间都是相互连通的。客户端可以与任何一个节点相连接,然后就可以访问集群中的任何一个节点。对其进行存取和其他操作。
在redis的每一个节点上,都有这么两个东西,一个是插槽(slot)可以理解为是一个可以存储两个数值的一个变量这个变量的取值范围是:0-16383。还有一个就是cluster我个人把这个cluster理解为是一个集群管理的插件。当我们的存取的key到达的时候,redis会根据crc16的算法得出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。
搭建
推荐采用3主3从6节点方案
#创建文件夹
mkdir /usr/local/redis-cluster
mkdir /usr/local/redis-cluster/bin
cd /usr/local/redis-cluster
mkdir -p 6380/data 6381/data 6382/data 6383/data 6384/data 6385/data
#进入编译好的redis下的src目录,拷贝文件到redis-cluster/bin中
cd redis-3.2.4/src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin
#复制一个新的redis实例到6380文件夹中
cp -r /usr/local/redis /usr/local/redis-cluster/6380
#修改redis.conf
port 6380 #端口号
daemonize yes
requirepass redispwd #设置密码
masterauth redispwd #设置验证密码
bind 192.168.204.128 #本机ip
dir /usr/local/redis-cluster/6380/data/ #数据文件存放位置
pidfile /var/run/redis_6380.pid #6380跟port一致
cluster-enabled yes #启动集群模式
cluster-config-file nodes6380.conf #6380跟port一致
cluster-node-timeout 15000
appendonly yes
#另外复制上一个配置好的实例5个
\cp -rf /usr/local/redis-cluster/6380/* /usr/local/redis-cluster/6381
\cp -rf /usr/local/redis-cluster/6380/* /usr/local/redis-cluster/6382
\cp -rf /usr/local/redis-cluster/6380/* /usr/local/redis-cluster/6383
\cp -rf /usr/local/redis-cluster/6380/* /usr/local/redis-cluster/6384
\cp -rf /usr/local/redis-cluster/6380/* /usr/local/redis-cluster/6385
#分别修改这5个配置文件,采用字符串替换
vi /usr/local/redis-cluster/6381/redis/etc/redis.conf
:%s/6380/6381
vi /usr/local/redis-cluster/6382/redis/etc/redis.conf
:%s/6380/6382
vi /usr/local/redis-cluster/6383/redis/etc/redis.conf
:%s/6380/6383
vi /usr/local/redis-cluster/6384/redis/etc/redis.conf
:%s/6380/6384
vi /usr/local/redis-cluster/6385/redis/etc/redis.conf
:%s/6380/6385
#分别启动redis实例
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6380/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6381/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6382/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6383/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6384/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6385/redis/etc/redis.conf
#查看进程信息
ps aux|grep 'redis'
#安装ruby,rubygems
yum install ruby
yum install rubygems
#上传redis-3.2.1.gem文件到某个目录下并cd到该目录进行安装
gem install -l redis-3.2.1.gem
#设置集群密码
find / -name 'client.rb'
#添加密码(我的在以下目录)
vi /usr/local/share/gems/gems/redis-3.2.1/lib/redis/client.rb
password redispwd
# 创建集群
/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.204.128:6380 192.168.204.128:6381 192.168.204.128:6382 192.168.204.128:6383 192.168.204.128:6384 192.168.204.128:6385
#命令行访问任一节点,进行测试
/usr/local/redis-cluster/6380/redis/bin/redis-cli -c -h 192.168.204.128 -p 6380 -a "redispwd"
存在的问题
springboot整合redis集群需要关闭防火墙才可用,仅开放所有节点端口号无法建立连接,查询了一下官网说节点端口号+10000端口号也需要开放才可以,比如6380节点需要把6380、16380端口都开启外网访问,其他节点同理,但是我自己试了下还是不行,具体原因未知,还请各位指导。
Redis-03-集群搭建的更多相关文章
- Redis本地集群搭建(5版本以上)
Redis本地集群搭建(5版本以上) 2019年11月3日10:05:48 步骤 1.下载安装Redis的安装包 2.复制5份,一共6份Redis的解压安装版,修改每个Redis节点的端口并开启节点 ...
- redis的集群搭建(很详细很详细)
说在前面的话 之前有一节说了redis单机版的搭建和使用jedis管理redis单机版和集群版, 本节主要讲一下redis的集群搭建. 跳转到jedis管理redis的使用 认识redis集群 首先我 ...
- linux环境下redis安装(redis伪集群搭建)
redis在linux环境下搭建 1.创建目录 [root@192 local]# mkdir /usr/local/redis 2.下载redis,并解压 [root@192 local]# wge ...
- redis主从集群搭建及容灾部署(哨兵sentinel)
Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 Redis安装 整体架构 Redis主从结构搭建 Redis容灾部署(哨兵sentinel) Redis常见问题 ...
- redis(9)集群搭建
一.搭建流程 以下我们将构建这样一个redis集群:三个主节点,分别备有一个从节点,主节点之间相互通信,如果主节点挂掉,从节点将被提升为主节点. redis集群至少需要3个redis实例 那么我们需要 ...
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- Redis Cluster集群搭建与应用
1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结 ...
- Redis笔记-集群搭建
Redis单机版搭建上一篇已经基本介绍了,下面讨论Redis集群搭建方案和示例. 1.关于Redis常用的集群方案(三种): a.一主多从,如一个Master.两个Slave b.薪火相传,即集群中的 ...
- Redis的搭建和Redis的集群搭建
1.Redis的官网:https://redis.io/ Redis的测试网站:http://try.redis.io/ 2.参考博客:https://www.cnblogs.com/maf ...
- 【Redis】Redis cluster集群搭建
Redis集群基本介绍 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施installation. Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行 ...
随机推荐
- AWS的边缘计算平台GreenGrass和IoT
AWS的边缘计算平台GreenGrass和IoT 为什么需要有边缘计算? 如今公有云和私有云平台提供的服务已经连接上了绝大多数的桌面设备和移动设备.但是更多的设备比如,车辆,工程机械,医疗设备,无人机 ...
- 永久解决AndroidStudio Aapt2的问题
https://blog.csdn.net/qq_37280248/article/details/80142260 修改电脑c://user/王明 中文名去掉 https://www.jb51.ne ...
- EOJ Monthly 2019.2 E 中位数 (二分+中位数+dag上dp)
题意: 一张由 n 个点,m 条边构成的有向无环图.每个点有点权 Ai.QQ 小方想知道所有起点为 1 ,终点为 n 的路径中最大的中位数是多少. 一条路径的中位数指的是:一条路径有 n 个点,将这 ...
- Linux 查看磁盘容量、查找大文件、查找大目录
Linux 查看磁盘容量.查找大文件.查找大目录 磁盘统计 查看磁盘使用情况 df -h 文件统计 查找/home 目录下大于800M的文件 find /home -type f -size +800 ...
- centos6.5下部署sersync+rsync --daemon同步数据
rsync --daemon端配置 [root@rsync-daemon etc]# /etc/init.d/iptables stop [root@rsync-daemon ~]# dos2unix ...
- gRPC in ASP.NET Core 3.x - gRPC 简介
gRPC的结构 在我们搭建gRPC通信系统之前,首先需要知道gRPC的结构组成. 首先,需要一个server(服务器),它用来接收和处理请求,然后返回响应. 既然有server,那么肯定有client ...
- OpenCV4系列之图像梯度和边缘检测
在图像处理中,求解图像梯度是常用操作. Sobel算子 Calculates the first, second, third, or mixed image derivatives using an ...
- 零基础Python应该怎样学习呢?(附视频教程)
Python应该怎样学习呢? 阶段一:适合自己的学习方式 对于零基础的初学者来说,最迷茫的是不知道怎样开始学习?那这里小编建议可以采用视频+书籍的方式进行学习.看视频学习可以让你迅速掌握编程的基础语法 ...
- Tomcat 核心配置
tomcat的核心配置在conf/server.xml中. <Server> 根元素 <Server>即Catalina Servlet组件. <Server por ...
- Explain执行计划与索引优化实践
一.何为explain执行计划? 使用explain关键字可以模拟优化器执行SQL语句,从而知道MySQL是如何使用索引来处理你的SQL查询语句以及连接表,可以分析查询语句或是结构的性能瓶颈,帮助我们 ...