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数据库,分别安装两台虚拟机上,已经成功实现主主复制,如果有需要,请查看我 ...
随机推荐
- 龙芯 fedora28 安装指南
版权声明:原创文章,未经博主允许不得转载 关于硬件 龙芯3号的板子安装系统都差不多,我分别在 Lemote A1310 和 Lemote A1901 上都尝试过. 本文主要依据 Lemote A190 ...
- centos7搭建hadoop2.10高可用(HA)
本篇介绍在centos7中搭建hadoop2.10高可用集群,首先准备6台机器:2台nn(namenode);4台dn(datanode):3台jns(journalnodes) IP hostnam ...
- Android教程2020 - RecyclerView使用入门
本文介绍RecyclerView的使用入门.这里给出一种比较常见的使用方式. Android教程2020 - 系列总览 本文链接 想必读者朋友对列表的表现形式已经不再陌生.手机上有联系人列表,文件列表 ...
- pythonenv的安装及迁移
一.安装 运行 pip install virtualenv 即可安装virtualenv,想用 最新开发版 就运行 二. virtualenv基本使用 $ python virtualenv.py ...
- Jutil 单元测试
eclipse 自身集成了jtuil,右击项目,点击bulidpath,addjar,如下所示添加jutil 新建一个Junit的测试类用来测试上面的测试方法,新增Junit的测试类方法如下: // ...
- 为什么不在spring容器管理controller
Spring容器与SpringMVC容器 1.疑问:为什么不用spring去管理所有类? 我们配置springMVC 中,为什么controller不直接交给spring 管理而要spring MVC ...
- Java面试技巧—如何自我介绍
在企业面试环节中“自我介绍”这个老生常谈的话题就不用多说什么了,面试官必定会问的.那么如何在自我介绍的时候就能够打动面试官,吸引面试官对面试者的兴趣?如何进行自我介绍比较好?有没有什么方式方法呢?当然 ...
- FFMPEG学习----使用SDL构建音频播放器
ffmpeg版本:ffmpeg-20160413-git-0efafc5 #include <stdio.h> #include <stdlib.h> #include < ...
- An internal error occurred during: "Launching New_configuration". Path for project must have only on
在Eclipse中按照如下操作 Project -> Properties -> Run/Debug Settings: 1. select "Launching New_con ...
- shell正则表达式提取数字
grep 提取数字 grep -Po "\d+\.\d+"