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数据库,分别安装两台虚拟机上,已经成功实现主主复制,如果有需要,请查看我 ...
随机推荐
- AMD R5 2400G插帧教程
最近买的小主机带的是AMD R5 2400G显卡,支持AMD的插帧技术,Sandeepin肯定要体验一把效果. BlueskyFRC 按照网上的教程配置,似乎2400G显卡驱动里没有AMD Fluid ...
- JS-03-数据基本类型与转换
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【大白话系列】MySQL 学习总结 之 初步了解 MySQL 的架构设计
一.MySQL还是个黑盒子 我们都知道,只要我们系统引入了 MySQL 驱动和连接池,就能从数据库连接池获取一个数据库连接,然后就可以执行增删改查的操作了. 可是我们并不知道 MySQL 里面是怎么执 ...
- svg图片在vue脚手架vue-cli怎么使用
第一种 使用vue2-svg-icon npm install vue2-svg-icon --save-dev` 下载之后在mian.js引入 名字可以随便起,这里我起icon 引入svg资源 这时 ...
- 龙良曲pytorch学习笔记_03
import torch from torch import nn from torch.nn import functional as F from torch import optim impor ...
- Struts(六)
JSON(JavaScript Object Notation) 1.一种轻量级的数据交换格式 2.通常用于在客户端和服务器之间传递数据 3.jQuery的所有参数都是以JSON格式 ...
- C语言关于getchar()的小笔记
#include <windows.h> #include <mmsystem.h> #include <string.h> void main() { int a ...
- 【搞定面试官】- Synchronized如何实现同步?锁优化?(1)
前言 说起Java面试中最高频的知识点非多线程莫属.每每提起多线程都绕不过一个Java关键字--synchronized.我们都知道该关键字可以保证在同一时刻,只有一个线程可以执行某个方法或者某个代码 ...
- 题解【RQNOJ PID497 0/1字串问题】
\[ \texttt{Description} \] 编程找出符合下列条件的字符串:①字符串中仅包含 0 和 1 两个字符:②字符串的长度为 n :③字符串中不包含连续重复三次的子串. \[ \tex ...
- input . type=number.使用后问题点
所有主浏览器都支持type属性,但是,并非所有主流浏览器都支持所有不同的 input 类型. 以下 input 类型是 HTML5 中的新类型:color.date.datetime.datetime ...