SpringBoot整合NoSql--(三)Redis集群
(1)集群原理
在Redis集群中,所有的Redis节点彼此互联,节点内部使用二进制协议优化传输速度和带宽。 当一个节点挂掉后,集群中超过半数的节点检测失效时才认为该节点已失效。不同于Tomcat集群 需要使用反向代理服务器,Redis 集群中的任意节点都可以直接和Java客户端连接。Redis 集群上 的数据分配则是采用哈希槽(HASH SLOT),Redis集群中内置了16384 个哈希槽,当有数据需要 存储时,Redis会首先使用CRC16算法对key进行计算,将计算获得的结果对16384取余,这样每 一个key都会对应一个取值在0~16383之间的哈希槽,Redis则根据这个余数将该条数据存储到对 应的Redis节点上,开发者可根据每个Redis实例的性能来调整每个Redis实例上哈希槽的分布范 围。
(2)集群规划
本案例在同一台服务器上用不同的端口表示不同的Redis服务器(伪分布式集群)。 主节点: 192.168.248.144:8001, 192. 168.248.144:8002, 192.1 68.248.144:8003。 从节点: 192.168.248.144:8004, 192. 168.248.144:8005, 192. 168.248.144:8006。
(3)集群配置
Redis集群管理工具redis-trib.rb依赖Ruby环境,首先需要安装Ruby环境。
安装步骤:
1.导入公钥
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

2.输入下面的命令来请求安装
\curl -sSL https://get.rvm.io | bash -s stable

3.shell环境更新一下,rvm -v 显示版本
source ~/.bashrc
source ~/.bash_profile
source /usr/local/rvm/scripts/rvm

4.列出已知的 Ruby 版本
rvm list known

5.安装rvm
rvm install 2.5.1

6.安装 redis依赖

7.将下载好的redis编译安装
mkdir redisCluster
CP -f ./redis-4.0.10.tar.gz ./redisCluster/
cd redisCluster
tar -zxvf redis-4.0.10.tar.gz
cd redis-4.0.10
make MALLOClibc
make install
8 复制redis-trib.rb到redisCluster下

9.在redisCluster下创建6个文件夹(8001-8006),并将redis.conf复制到8001-8006下,更改每一个redis.conf
8001为例:
port 8001
#bind 127.0.0.1
cluster-enabled yes
cluster-config-file node-8001.conf
protected-mode no
daemonize yes
requirepass 123456
masterauth 123456
10.进入redis-5.0.5启动6个redis,回到redisCluster目录下

通过指令找到安装的redis在ruby环境中的配置client.rb
打开client.rb并修改密码

11.创建集群
redis-cli --cluster create 192.168.205.100:8001 192.168.20
5.100:8002 192.168.205.100:8003 192.168.205.100:8004 192.168.205.100:8005 192.168.205.100:8006 --cluster-replicas 1 -a 123456

Can I set the above configuration? (type 'yes' to accept): yes,该处请输入yes,不然好像分配不了哈希槽
这样就行了

测试:
[root@localhost redis-5.0.]# redis-cli -p -a -c
Warning: Using a password with '-a' or '-u' option on the command line interface may not
be safe.127.0.0.1:> auth
OK
127.0.0.1:> CLUSTER nodes
4c3938eb52b31c3dab74d0edb878d6c42a711a7a 192.168.205.100:@ master -
connected -16383b4dfec3ff7490fd7207bdf7f48d0212d8596ba15 192.168.205.100:@ myself,master -
connected -5460adb99416cc376b767198aa606042e98b904a1544 192.168.205.100:@ master -
connected -10922f83c3c955420221b4939617e1520d5ba9370b1d8 192.168.205.100:@ slave adb99416cc376b7
67198aa606042e98b904a1544 connected2bbfdf6085405753ef5931cb0a883db9043a2f22 192.168.205.100:@ slave b4dfec3ff7490fd
7207bdf7f48d0212d8596ba15 connected4603f708c2e106cd2c227a7c7eb6986ca62b293c 192.168.205.100:@ slave 4c3938eb52b31c3
dab74d0edb878d6c42a711a7a connected127.0.0.:> set k1 测试
-> Redirected to slot [] located at 192.168.205.100:
OK
192.168.205.100:> exit
[root@localhost redis-5.0.]# redis-cli -p -a -c
Warning: Using a password with '-a' or '-u' option on the command line interface may not
be safe.127.0.0.1:> auth
OK
127.0.0.1:> get k1
-> Redirected to slot [
ok
SpringBoot整合NoSql--(三)Redis集群的更多相关文章
- SpringBoot系列教程之Redis集群环境配置
之前介绍的几篇redis的博文都是基于单机的redis基础上进行演示说明的,然而在实际的生产环境中,使用redis集群的可能性应该是大于单机版的redis的,那么集群的redis如何操作呢?它的配置和 ...
- Redis集群的搭建及与SpringBoot的整合
1.概述 之前聊了Redis的哨兵模式,哨兵模式解决了读的并发问题,也解决了Master节点单点的问题. 但随着系统越来越庞大,缓存的数据越来越多,服务器的内存容量又成了问题,需要水平扩容,此时哨兵模 ...
- docker compose搭建redis7.0.4高可用一主二从三哨兵集群并整合SpringBoot【图文完整版】
一.前言 redis在我们企业级开发中是很常见的,但是单个redis不能保证我们的稳定使用,所以我们要建立一个集群. redis有两种高可用的方案: High availability with Re ...
- springboot+shiro+redis(集群redis版)整合教程
相关教程: 1. springboot+shiro整合教程 2. springboot+shiro+redis(单机redis版)整合教程 3.springboot+shiro+redis(单机red ...
- SpringBoot整合Redis集群
一.环境搭建 Redis集群环境搭建:https://www.cnblogs.com/zwcry/p/9174233.html 二.Spring整合Redis集群 1.pom.xml <proj ...
- springboot和Redis集群版的整合
此篇接上一个文章springboot和Redis单机版的整合 https://www.cnblogs.com/lin530/p/12019023.html 下面接着介绍和Redis集群版的整合. 1. ...
- SpringBoot2.0 整合 Redis集群 ,实现消息队列场景
本文源码:GitHub·点这里 || GitEE·点这里 一.Redis集群简介 1.RedisCluster概念 Redis的分布式解决方案,在3.0版本后推出的方案,有效地解决了Redis分布式的 ...
- 04.redis集群+SSM整合使用
redis集群+SSM整合使用 首先是创建redis-cluster文件夹: 因为redis最少需要6个节点(三主三从),为了更好的理解,我这里创建了两台虚拟机(192.168.0.109 192.1 ...
- 05.haproxy+mysql负载均衡 整合 redis集群+ssm
本篇重点讲解haproxy+mysql负载均衡,搭建完成后与之前搭建的redis+ssm进行整合 (注:这里用到了两台mysql数据库,分别安装两台虚拟机上,已经成功实现主主复制,如果有需要,请查看我 ...
随机推荐
- Liunx创建到部署ASP.NET Core项目从零开始-----使用Centos7
一.搭建环境 1..注册Microsoft密钥和源 执行命令:sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages ...
- PHP批量去除文件BOM头
auto 是否自动替换 默认否 dir 检查目录 默认./ display 是否显示所有文件 默认只显示有bom头的文件 <?php empty($_GET['auto']) && ...
- ssh隧道使用
在内网中几乎所有的linux服务器和网络设备都支持ssh协议.一般情况下,ssh协议是允许通过防火墙和边界设备的,所以经常被攻击者利用.同时ssh协议的传输过程是加密的,所以我们很难区分合法的ssh会 ...
- JVM性能优化系列-(3) 虚拟机执行子系统
3. 虚拟机执行子系统 3.1 Java跨平台的基础 Java刚诞生的宣传口号:一次编写,到处运行(Write Once, Run Anywhere),其中字节码是构成平台无关的基石,也是语言无关性的 ...
- 使用.NET Core优雅获取并展示最新疫情数据
前言 新型冠状病毒的出现,着实让人紧张.我每天一大早都会去查看今天的最新数据,可是每次的数据都挺让人揪心的.今天突然间很想看看过去的历史的数据,结果查了很多资料都不是很全.反正国家让我们待在家里做贡献 ...
- 今天你上班了吗?来聊聊一个隐蔽了 5 年的BUG!
前言 今天,我们要揭晓一个 FineUI 隐藏最深的一个BUG,这个问题从 2014-07-30 发布 FineUIPro v1.0.0 就一直存在,直到最新于 2020-01-10 发布的 v6.1 ...
- Flink安装及实例教程
通过本教程我们将快速部署好flink在linux下的环境,并通过flink完成一个小demo的测试 一.准备阶段 flink压缩包下载(1.7.2): http://archive.apache.or ...
- 【搞定面试官】- Synchronized如何实现同步?锁优化?(1)
前言 说起Java面试中最高频的知识点非多线程莫属.每每提起多线程都绕不过一个Java关键字--synchronized.我们都知道该关键字可以保证在同一时刻,只有一个线程可以执行某个方法或者某个代码 ...
- python 使用记录
#print输出后不换行 #python2.x 中末尾加逗号,表示不换行,print 'contents', #python3.x 中默认print('contents',end='\n'),想要输出 ...
- BZOJ1301 字符加密Cipher (后缀数组)
题意: 把所有循环字符串的后缀排名,输出这n<1e5个排名的最后一个字符 思路: 将该字符串拼接,按照排名顺序输出后缀开头在前一个字符串的情况中的“最后一个字符”即可 代码: #include& ...