SpringBoot2.x整合Redis 分布式集群_01

文章目录

          • 一、节点分布总览
          • 二、软件配置初始化
          • 三、集群配置修改
            • 3.1. redis-7002.conf
            • 3.2. redis-7003.conf
            • 3.3. redis-8001.conf
            • 3.4. redis-8002.conf
            • 3.5. redis-8003.conf
            • 3.6. redis启动
          • 四、 节点握手
            • 4.1. 节点握手
            • 4.2. 操作日志如下:
          • 五、槽位分配和配置主从
            • 5.1. 槽位分配
            • 5.2. 主从复制分配
            • 5.3. 集群验证

Redis 分布式集群能解决的问题集群 概念
解决现有系统单节点并发压力和物理上限问题通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态
一、节点分布总览

演示案例
3主3从 横向扩展

服务器端口节点说明
192.168.0.1147001master
192.168.0.1147002master
192.168.0.1147003master
192.168.0.1148001slave
192.168.0.1148002slave
192.168.0.1148003slave
二、软件配置初始化
  • 下载
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
  • 解压
cd /app
tar -zxvf redis-6.2.6.tar.gz
  • 编译安装
cd redis-6.2.6/
make install
  • 配置抽离
mkdir /app/redis-cluster/
cp /app/redis-6.2.6/redis.conf /app/redis-cluster/
  • 编辑配置
vim /app/redis-cluster/redis.conf
  • 修改配置7处:
    bind 127.0.0.1 改为 bind 0.0.0.0
    port 6379 改为 port 7001
    daemonize no 改为 daemonize yes
    pidfile /var/run/redis_6379.pid 改为 pidfile /var/run/redis_7001.pid
    注释打开cluster-enabled yes
    注释打开 cluster-node-timeout 15000
    注释打开 nodes-6379.conf 改为nodes-7001.conf

  • 集群配置分配

将/app/redis-cluster/redis.conf复制6份并重命名

cd app/redis-cluster/
cp redis.conf redis-7001.conf
cp redis.conf redis-7002.conf
cp redis.conf redis-7003.conf
cp redis.conf redis-8001.conf
cp redis.conf redis-8002.conf
cp redis.conf redis-8003.conf
三、集群配置修改

分别修改redis-7002.conf、redis-7003.conf、redis-8001.conf、redis-8002.conf、redis-8003.conf

3.1. redis-7002.conf
vim redis-7002.conf

port 把7001 修改为7002
7001.pid 修改为 7002.pid
将nodes-7001.conf 修改为 nodes-7002.conf

3.2. redis-7003.conf
vim redis-7003.conf

port 把7001 修改为7003
7001.pid 修改为 7003.pid
将nodes-7001.conf 修改为 nodes-7003.conf

3.3. redis-8001.conf
vim redis-8001.conf

port 把7001 修改为8001
7001.pid 修改为 8001.pid
将nodes-7001.conf 修改为 nodes-8001.conf

3.4. redis-8002.conf
vim redis-8002.conf

92行 port 把7001 修改为8002
7001.pid 修改为 8002.pid
将nodes-7001.conf 修改为 nodes-8002.conf

3.5. redis-8003.conf
vim redis-8003.conf

port 把7001 修改为8003
7001.pid 修改为 8003.pid
将nodes-7001.conf 修改为 nodes-8003.conf

3.6. redis启动
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7001.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7002.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7003.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-8001.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-8002.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-8003.conf

查看进程:

ps -ef |grep redis

操作日志如下:

[root@localhost ~]# ps -ef |grep redis
root       7770      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:7001 [cluster]
root       7775      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:7002 [cluster]
root       7780      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:7003 [cluster]
root       7785      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:8001 [cluster]
root       7790      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:8002 [cluster]
root       7795      1  0 11:29 ?        00:00:00 /app/redis-6.2.6/src/redis-server 0.0.0.0:8003 [cluster]
root       7800   7404  0 11:29 pts/1    00:00:00 grep --color=auto redis
[root@localhost ~]#
四、 节点握手

上面仅仅是搭建了集群,6个节点之间还没有关系,下面通过 节点握手让集群各节点之间,发生关系。

4.1. 节点握手

7001节点,依次执行(一条一条复制粘贴)以下命令:

/app/redis-6.2.6/src/redis-cli -h localhost -p 7001
cluster meet 192.168.0.114 7002
cluster meet 192.168.0.114 7003
cluster meet 192.168.0.114 8001
cluster meet 192.168.0.114 8002
cluster meet 192.168.0.114 8003
4.2. 操作日志如下:
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7001
localhost:7001> cluster meet 192.168.0.114 7002
OK
localhost:7001> cluster meet 192.168.0.114 7003
OK
localhost:7001> cluster meet 192.168.0.114 8001
OK
localhost:7001> cluster meet 192.168.0.114 8002
OK
localhost:7001> cluster meet 192.168.0.114 8003
OK
localhost:7001> 
五、槽位分配和配置主从
5.1. 槽位分配
/app/redis-6.2.6/src/redis-cli -h localhost -p 7001 cluster addslots {0..5461}
/app/redis-6.2.6/src/redis-cli -h localhost -p 7002 cluster addslots {5462..10922}
/app/redis-6.2.6/src/redis-cli -h localhost -p 7003 cluster addslots {10923..16383}
操作日志:
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7001 cluster addslots {0..5461}
OK
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7002 cluster addslots {5462..10922}
OK
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7003 cluster addslots {10923..16383}
OK
[root@localhost ~]#
登录7001节点
/app/redis-6.2.6/src/redis-cli -h localhost -p 7001
查看集群信息:cluster info
查看节点信息:cluster nodes操作日志:
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7001
localhost:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:5
cluster_my_epoch:0
cluster_stats_messages_ping_sent:278
cluster_stats_messages_pong_sent:298
cluster_stats_messages_meet_sent:5
cluster_stats_messages_sent:581
cluster_stats_messages_ping_received:298
cluster_stats_messages_pong_received:283
cluster_stats_messages_received:581
localhost:7001> cluster nodes
c1526c666b10d8e21858121be70ad74e391c9b7c 192.168.0.114:8002@18002 master - 0 1587267512220 4 connected
f990f845ed898dea7b7f8f39befd4f0dc247988a 192.168.0.114:8003@18003 master - 0 1587267510000 5 connected
fd35850bf465cb53b0ffc8f843078c171d14583d 192.168.0.114:7001@17001 myself,master - 0 1587267510000 0 connected 0-5461
3523d3510e7a551929729798f5ea0e9b65d85eea 192.168.0.114:7003@17003 master - 0 1587267511212 2 connected 10923-16383
faaa97d6fc1f163e9eb2549c77b4f6f3c68bc025 192.168.0.114:8001@18001 master - 0 1587267511000 3 connected
72e1d44ffa3b20f17ba6abb3aa8df3a9752e00cc 192.168.0.114:7002@17002 master - 0 1587267512000 1 connected 5462-10922
localhost:7001>注:目前都是master,节点信息等会要用,这个窗口先不要关闭,
在新开一个窗口,进行下一步操作
5.2. 主从复制分配

复制原则:8001复制7001、8001复制7001、8003复制7003


/app/redis-6.2.6/src/redis-cli -h localhost -p 8001 cluster replicate fd35850bf465cb53b0ffc8f843078c171d14583d
/app/redis-6.2.6/src/redis-cli -h localhost -p 8002 cluster replicate 72e1d44ffa3b20f17ba6abb3aa8df3a9752e00cc
/app/redis-6.2.6/src/redis-cli -h localhost -p 8003 cluster replicate 3523d3510e7a551929729798f5ea0e9b65d85eea

操作日志如下:

[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 8001 cluster replicate fd35850bf465cb53b0ffc8f843078c171d14583d
localhost -p 8003 cluster replicate 3523d3510e7a551929729798f5ea0e9b65d85eeaOK
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 8002 cluster replicate 72e1d44ffa3b20f17ba6abb3aa8df3a9752e00cc
OK
[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 8003 cluster replicate 3523d3510e7a551929729798f5ea0e9b65d85eea
OK
[root@localhost ~]#
5.3. 集群验证

登录7001节点

/app/redis-6.2.6/src/redis-cli -h localhost -p 7001

查看集群信息:cluster info
查看节点信息:cluster nodes

注:目前3主3从 当主节点挂掉之后,从节点自动上位
操作日志如下:

[root@localhost ~]# /app/redis-6.2.6/src/redis-cli -h localhost -p 7001
localhost:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:5
cluster_my_epoch:0
cluster_stats_messages_ping_sent:692
cluster_stats_messages_pong_sent:734
cluster_stats_messages_meet_sent:5
cluster_stats_messages_sent:1431
cluster_stats_messages_ping_received:734
cluster_stats_messages_pong_received:697
cluster_stats_messages_received:1431
localhost:7001> cluster nodes
c1526c666b10d8e21858121be70ad74e391c9b7c 192.168.0.114:8002@18002 slave 72e1d44ffa3b20f17ba6abb3aa8df3a9752e00cc 0 1587267912538 4 connected
f990f845ed898dea7b7f8f39befd4f0dc247988a 192.168.0.114:8003@18003 slave 3523d3510e7a551929729798f5ea0e9b65d85eea 0 1587267911000 5 connected
fd35850bf465cb53b0ffc8f843078c171d14583d 192.168.0.114:7001@17001 myself,master - 0 1587267909000 0 connected 0-5461
3523d3510e7a551929729798f5ea0e9b65d85eea 192.168.0.114:7003@17003 master - 0 1587267913546 2 connected 10923-16383
faaa97d6fc1f163e9eb2549c77b4f6f3c68bc025 192.168.0.114:8001@18001 slave fd35850bf465cb53b0ffc8f843078c171d14583d 0 1587267910000 3 connected
72e1d44ffa3b20f17ba6abb3aa8df3a9752e00cc 192.168.0.114:7002@17002 master - 0 1587267912000 1 connected 5462-10922
localhost:7001> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在优雅地Spring 中实现消息的发送和消费

本文将对rocktmq-spring-boot的设计实现做一个简单的介绍,读者可以通过本文了解将RocketMQ Client端集成为spring-boot-starter框架的开发细节,然后通过一个简单的示例来一步一步的讲解如何使用这个spring-boot-starter工具包来配置,发送和消…

假如有人把支付宝存储服务器炸了

戳蓝字“CSDN云计算”关注我们哦!作者 | 净整些没用的责编 | 阿秃近日,在知乎看到了一个问题《假如有人把支付宝存储服务器炸了(物理炸),大众在支付宝里的钱是不是就都没有了呢?》外行人问题。网站都是有服…

如何在一分钟内实现微服务系统下的架构可视化

为什么需要架构可视化 随着企业进行微服务架构改造,系统架构复杂度越来越高,架构变化日益频繁,微服务改造后的实际架构模型可能与预期已经产生了巨大差异,架构师或系统运维人员很难准确记忆所有资源实例的构成和交互情况&#xf…

SpringBoot2.x整合Redis 分布式集群_02

文章目录1. maven依赖2. RedisConfig3. RedisUtils4. application.yml5. 单元测试6. redis 客户端查看1. maven依赖 <!--redis Start--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis<…

php mysql 地理位置_PHP MySql和地理位置

我正在写一个网站,主要是在一个纬度25英里范围内寻找地方,长期使用php和mysql.我想知道这样的事情会怎么样&#xff1f;我会将一个lat和long传递给该脚本,并且只从位于我的数据库位置的纬度25英里内的位置拉出它.做这个的最好方式是什么&#xff1f;编辑&#xff1a;我发现这个…

驱动阿里云的高性能网络引擎- 飞天洛神

大家都知道阿里云部件的系统都是以神仙命名的&#xff0c;比如说洛神、伏羲、盘古、女娲等等。而在11月15日的GNTC 云专场峰会上&#xff0c;阿里云资深网络技术专家宗志刚先生首先分享了“驱动阿里云的高性能网络引擎- 飞天洛神”主题演讲。洛神是阿里云飞天系统的虚拟网络系统…

6G为什么不被看好?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 小枣君责编&#xff5c;阿秃前段时间&#xff0c;科技部官宣我国正式启动6G研发的新闻&#xff0c;在网上引起了广泛的转发&#xff0c;相信大家都有看到。新闻摘要&#xff1a;2019年11月3日&#xff0c;科技部会同发展改革…

阿里巴巴IPv6应用平台引领下一代互联网

在11月15日的GNTC IPv6专场峰会上&#xff0c;阿里巴巴网络架构师张先国先生首先分享了“阿里巴巴IPv6应用平台引领下一代互联网”主题演讲。演讲中讲述了阿里巴巴为何尽早启动IPv6项目、阿里巴巴PV6应用平台实践、以及阿里巴巴五大应用及集团各种平台如何构建在阿里云平台之上…

SpringBoot 整合 Redis 哨兵机制_02

文章目录1. maven依赖2. RedisConfig3. RedisUtils4. application.yml5. 单元测试6. redis客户端查看1. maven依赖 <!--redis Start--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis<…

mysql慢查询日志分析工具比较_MySQL慢查询日志总结 日志分析工具mysqldumpslow

慢查询日志概念MySQL的慢查询日志是MySQL提供的一种日志记录&#xff0c;它用来记录在MySQL中响应时间超过阀值的语句&#xff0c;具体指运行时间超过long_query_time值的SQL&#xff0c;则会被记录到慢查询日志中。long_query_time的默认值为10&#xff0c;意思是运行10S以上的…

北大教授张大庆:无线感知,让你变老也优雅

受访者 | 张大庆记者 | 胡巍巍出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;在国内高校中&#xff0c;北大的校庆日很特殊——5月4日。这一天&#xff0c;也是青年节。北大&#xff0c;是五四运动的策源地。100年来&#xff0c;“爱国、进步、民主、科学”的五四…

揭秘阿里云EB级大数据计算引擎MaxCompute

日前&#xff0c;全球权威咨询与服务机构Forrester发布了《The Forrester WaveTM: Cloud Data Warehouse, Q4 2018》报告。这是Forrester Wave首次发布关于云数仓解决方案&#xff08;Cloud Data Warehouse&#xff0c;简称CDW&#xff09;的测评。报告对云数仓的当前产品功能、…

SpringBoot整合Redis 主从复制_02

文章目录1. maven依赖2. RedisConfig3. RedisUtils4. application.yml5. 单元测试6. redis客户端查看1. maven依赖 <!--redis Start--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis<…

idea 找不到 Free MyBatis plugin

idea 找不到 free mybatis plugin 可以使用mybatisX替换&#xff1a; 插件安装成功后&#xff0c;重启idea。

mysql malloc lib_CVE-2016-6662-MySQL ‘malloc_lib’变量重写命令执行分析 | CN-SEC 中文网...

摘要今天有个关于MySQL的漏洞被披露出来&#xff0c;编号CVE-2016-6662。该漏洞主要涉及到 mysqld_safe 脚本中在加速/处理内存时会采用 “malloc_lib”变量作为辨别标记选择性加载(preload方式)比如tcmalloc之类的malloc库。不幸的的是这个变量可以被my.cnf所控制&#xff0c;…

UnixBench算分介绍

关于如何用UnixBench&#xff0c;介绍文章很多&#xff0c;这里就不展开了。这里重点描述下它是如何算分的。 运行参数 碰到很多客户&#xff0c;装好后&#xff0c;直接./Run&#xff0c;就把结果跑出来了&#xff0c;然后还只取最后一个分值&#xff0c;比谁高谁低。 下面列…

TPC-C中跑赢Oracle的OceanBase,最近有何惊艳?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 晶少责编 | 阿秃出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;就在一年一度震撼人心的双11前夕&#xff0c;有消息称前段时间火爆到瞬间刷屏的OceanBase已经完成了Oracle模式的研发&#xff0c;助力银行…

CVE漏洞—PHPCMS2008 /type.php代码注入高危漏洞预警

11月4日&#xff0c;阿里云安全首次捕获PHPCMS 2008版本的/type.php远程GetShell 0day利用攻击&#xff0c;攻击者可以利用该漏洞远程植入webshell&#xff0c;导致文件篡改、数据泄漏、服务器被远程控制等一系列严重问题。建议受影响用户尽快升级到最新版本修复。 —————…

mysql分页概念_MySQL学习笔记之数据定义表约束,分页方法总结

本文实例讲述了MySQL学习笔记之数据定义表约束&#xff0c;分页方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;1. primary key 主键特点&#xff1a;主键是用于唯一标识一条记录的约束&#xff0c;一张表最多只能有一个主键&#xff0c;不能为空也不能重复create…

Centos7 开机启动汇总

CentOS 7上配置MySQL5.7开机自启动方法 centos7: vsftpd安装及启动: ftp配置 centos7 rabbitmq开机启动 systemctl enable rabbitmq-server.service