redis分片java实践、redis哨兵机制实现、redis集群搭建

 redis分片java实践

linux安装redisicon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/134864302复制redis.conf配置文件成redis1.conf、redis2.conf、redis3.conf

修改redis的端口信息和存pid文件的路径。存pid文件的路径只要不同就行了,没什么特别要求。

 指定配置文件启动redis

redis-server redis1.conf
redis-server redis2.conf
redis-server redis3.conf

查看进程,看看启动起来了嘛

ps -ef | grep redis

 java整合redis实现分片 

public class redisShares {public static void main(String[] args) {share();}public static void share(){List<JedisShardInfo> shares=new ArrayList<>();shares.add(new JedisShardInfo("152.136.167.51",7000));shares.add(new JedisShardInfo("152.136.167.51",7001));shares.add(new JedisShardInfo("152.136.167.51",7002));ShardedJedis jedis = new ShardedJedis(shares);jedis.setnx("xxx","6666");System.out.println(jedis.get("xxx"));}}

 进入不同的redis客户端,可以查到上面存的数据被分开存储了。

redis哨兵机制实现

1.主从节点挂载

在初始的redis环境下:拷贝redis.conf文件

(1)复制三份redis.conf并修改端口分别为7000、7001、7002

(2)修改pid文件的路径 

(3) 在存redis.conf配置文件的路径下,启动redis服务

redis-server redis.conf

 (4)查看redis启动了吗

ps -ef | grep redis

(5)挂载从节点到主节点上

redis-cli -p 7001
#slaveof 主节点的ip 主结点的端口
slaveof 127.0.0.1 7000
exitredis-cli -p 7002
slaveof 127.0.0.1 7000
exit

 (6)进入主节点客户端查看挂载上了嘛

redis-cli -p 7000
info replication

可以看到另外两个节点已经挂载上去了。

2. 配置哨兵

哨兵是一个单独的进程,用来监控主从节点,做故障转移。

sentinel.conf是哨兵配置的默认配置文件,我们将这个文件复制一份(防止改错)

要设置几个哨兵就复制几份配置文件,完成下面的配置。

修改sentinel.conf

(1)哨兵进程的端口,如果设置多个哨兵,端口要不一致

(2)开启守护进程,运行后台启动,不占用窗口

(3)哨兵的日志文件 

 

(4)设置主节点信息

设置主从结构中的主节点的ip和端口,1代表有1个哨兵认为主节点不可用了就换主节点。

注意:这个ip和上面主从节点挂载使用的ip必须一致,不能一个是服务器ip,一个是127.0.0.1或者localhost

 (5)设置心跳时间

当哨兵发出ping后节点多久没有回应就被判定为挂掉了。阈值设置。

(6)配置同步

此配置值在发生故障时,最多可以有几个slave同时对新的master进行同步,这个数字越小完成故障处理的时间越短

(7)关闭保护模式

如果启动保护模式而且没有密码或者没有设置bind,只能接收本机的访问(保护模式是一种保护,但是bind和密码优先级更高)

3.启动哨兵进行

复制sentinel配置文件,修改哨兵端口。启动三个哨兵。

redis-sentinel sentinel1.conf
redis-sentinel sentinel2.conf
redis-sentinel sentinel3.conf

进入哨兵客户端,查看哨兵的信息,可以看到有两个从节点 ,三个哨兵

模拟主节点宕机

 

我们再次进入哨兵进程查看,发现已经更换主节点

redis-cli -p 27000
INFO sentinel

 

如果此时将宕机的结点再启动,就可以看到它变成了从节点。

redis集群搭建

1.集群配置文件修改

创建文件夹cluster,创建文件夹7000 7001 7002 7003 7004 7005

复制redis.conf配置文件,到每个文件夹中。

修改7000中的配置文件:

(1)注释掉允许访问的ip地址

(2)关闭保护模式:运行别的主机访问

(3)修改redis启动的客户端端口

(4)开启保护模式,运行后台启动

(5)修改pid文件地址,改到和redis.conf同一个文件夹下就可以

(6)修改持久化文件地址,改到redis.conf所在文件夹

(7)设定内存优化策略

(8)关闭aof模式

(9)开启集群

(10)开启集群配置文件

(11)修改集群超时时间

注意:每个配置文件除了(3)端口(5)(6)路径不同其他都相同。

2.编写启动脚本和关闭脚本

启动

#!/bin/sh
redis-server  ./7000/redis.conf &
redis-server  ./7001/redis.conf &
redis-server  ./7002/redis.conf &
redis-server  ./7003/redis.conf &
redis-server  ./7004/redis.conf &
redis-server  ./7005/redis.conf &

关闭

#!/bin/sh
redis-cli -p 7000 shutdown &
redis-cli -p 7001 shutdown &
redis-cli -p 7002 shutdown &
redis-cli -p 7003 shutdown &
redis-cli -p 7004 shutdown &
redis-cli -p 7005 shutdown &

3.测试集群

启动

sh start.sh

查看集群信息,

redis-cli -p 7000
 info replication

 

可以看到集群创建成功。

结束redis

sh shutdown.sh

可以看到已经结束了

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL安装文档(8.0.37)

MySQL安装文档 前言1 下载2 解压3 环境3.1 添加环境变量3.2 初始化MySQL3.1 注册MySQL服务4 启动MySQL服务5 修改默认账户密码 4 登录MySQL5 卸载MySQL 前言 数据库&#xff1a;英文为 DataBase&#xff0c;简称DB&#xff0c;它是存储和管理数据的仓库。 数据库管理系统&…

ISIS的工作原理

1.邻居关系建立 &#xff08;1&#xff09;IS-IS领接关系建立原则 1、通过将以太网接口模拟成点到点接口&#xff0c;可以建立点到点链路邻接关系。 2、当链路两端IS-IS接口的地址不在同一网段时&#xff0c;如果配置接口对接收的Hello报文不作IP地址检查&#xff0c;也可以建…

若依plus 某些接口(用户信息等)响应突然变慢

今天一大早起来发现我的接口突然响应变慢了&#xff01; 就什么都没动&#xff0c;啥也没改&#xff0c;但是一些接口又很快。 百度了很多&#xff0c;都说叫我改sql查询方式&#xff0c;又怀疑是过滤器的问题&#xff0c;很遗憾都不是&#xff01; 一个响应40秒&#xff01;…

我独自升级崛起PC下载安装教程 我独自升级崛起PC下载教程

《我独自升级&#xff1a;崛起》这款游戏灵感源自热门网络漫画《我独自升级》&#xff0c;是一款深度浸入式RPG游戏。它不仅呈献给玩家一个情节错综复杂、引人入胜的故事线&#xff0c;让玩家能紧随主角步伐&#xff0c;亲历其成长的点点滴滴&#xff0c;还自豪地展示了琳琅满目…

申请免费一年期的https证书

现在https证书的普及度还是比较高的&#xff0c;大众对于https证书的需求度也日益提升。针对于一些个人用户或是企业而言&#xff0c;实现网站的https访问已经成为了一种标配。 当前的免费证书&#xff1a; 截止到2024年为止&#xff0c;基本所有平台都停止了对于一年期免费S…

【Linux系统编程】1-文件IO操作

文章目录 1 概述2 文件描述符3 文件I/O操作3.1 打开文件操作3.2 关闭文件操作3.3 向文件写入数据3.4 从文件读取数据 4 给文件描述符添加非阻塞特性4.1 当此文件描述符不存在4.2 当此文件描述符存在 5 获取文件状态信息6 文件目录操作6.1 打开目录操作6.2 读取目录信息6.3 关闭…

个人IP打造孵化运营产业链商业计划书

【干货资料持续更新&#xff0c;以防走丢】 个人IP打造孵化运营产业链商业计划书 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 PPT共90页&#xff08;完整资料包含以下内容&#xff09; 目录 个人IP运营方案&#xff1a; 1. 个人IP定位与构建 1.1 人格画像构…

【Vue】Vue初体验

目录 Vue简介Vue的特点MVVM 概念MVVM 的工作原理 虚拟DOM和Diff算法 与其他 JS 框架的关联Vue 周边库vue 的特性1.数据驱动视图2.双向数据绑定 开发工具 Vue快速上手1.搭建Vue开发环境2.创建Vue实例内容解析注意data的两种写法 3.Vue模板语法插值语法指令语法代码示例 4.Vue数据…

Unity Shader中获取像素点深度信息

1.顶点着色器中对深度进行计算 v2f vert(appdata v) {v2f o;o.pos UnityObjectToClipPos(v.vertex);o.uv TRANSFORM_TEX(v.uv, _MainTex);o.depth (o.pos.z / o.pos.w 1.0) * 0.5; // Normalize depth to [0, 1]return o; }但是达不到预期&#xff0c;最后返回的值一直大于…

QT+网络调试助手+TCP服务器

一、UI界面设计 二、单线程 代码设计 1、 查找合法的本地地址&#xff0c;用于当作服务器的IP地址 #include <QThread> #include <QTcpSocket> #include <QNetworkInterface> #include <QMessageBox>QList<QHostAddress> ipAddressesList QNe…

【iOS】——浅析CALayer

文章目录 一、CALayer介绍二、UIview与CALayer1.区别2.联系 三、CALayer的使用1.初始化方法2.常用属性 四.CALayer坐标系1.position属性和anchorPoint属性2.position和anchorPoint的关系3.position、anchorPoint和frame的关系 五、CALayerDelegate六、CALayer绘图机制1.绘图流程…

vue2结合element-ui实现TreeSelect 树选择功能

需求背景 在日常开发中&#xff0c;我们会遇见很多不同的业务需求。如果让你用element-ui实现一个 tree-select 组件&#xff0c;你会怎么做&#xff1f; 这个组件在 element-plus 中是有这个组件存在的&#xff0c;但是在 element-ui 中是没有的。 可能你会直接使用 elemen…

6、随机森林(Random forests)

Random forests started a revolution in machine learning 20 years ago. For the first time, there was a fast and reliable algorithm which made almost no assumptions about the form of the data, and required almost no preprocessing. In today’s lesson, you’ll…

全新Adobe利器:Project Neo为2D平面图像轻松添加3D立体效果

Adobe的崭新创意工具Project Neo&#xff0c;正以其独特的3D技术为传统的2D图像设计领域带来革命性的变化。这款工具的核心功能在于&#xff0c;它能够将原本平面的2D图像巧妙地转化为立体感十足的三维作品。 想象一下&#xff0c;你手中的图标、动画插图&#xff0c;在Projec…

高效项目管理:如何利用zz-plan在线甘特图工具

作为项目管理人员&#xff0c;使用 zz-plan https://zz-plan.com/这样的在线甘特图协作软件可以极大地提高项目管理的效率和效果。以下是结合zz-plan特点的一些关键步骤&#xff1a; 1. 制定项目计划 在zz-plan上创建新的项目&#xff0c;定义项目目标、关键里程碑和最终期限。…

Llama 3 模型上下文长度扩展至1048K

AI苏妲己&#xff1a; Gradient AI 近日宣布&#xff0c;通过其创新的渐进式训练方法&#xff0c;成功将 Llama 3 系列模型的上下文长度扩展至超过100万令牌。 Llama 3 模型最初设计用于处理8000个令牌的上下文长度&#xff0c;这大约相当于6000字或10页文档。为了适应更长的…

Spring中的Bean相关理解

在Spring框架中&#xff0c;Bean是一个由Spring IoC容器实例化、配置和管理的对象。Bean是一个被Spring框架管理并且被应用程序各个部分所使用的对象。Spring IoC容器负责Bean的创建、初始化、依赖注入以及销毁等生命周期管理。 注&#xff1a;喜欢的朋友可以关注公众号“JAVA学…

央国企加速新质生产力形成和发展,HR数字化工具如何推动创新内核构建?

自今年两会以来&#xff0c;“新质生产力”一词获得了广泛的关注。众多专家学者对其重要性、定义及作用进行了热烈且深入的讨论&#xff0c;一致强调了新质生产力的核心地位。对于那些致力于转型为现代化国有企业的国资中央企业而言&#xff0c;培育新质生产力无疑成为了当前及…

通过高效的升级计划控制云成本

快速迁移到云以及使用和成本的复杂性使得公司迫切希望减少浪费并控制其支出。更糟糕的是&#xff0c;动荡的经济让决策者紧张不安&#xff0c;他们考虑削减成本措施并优先考虑锁定收入。 如果没有正式的 FinOps 或成本优化策略&#xff0c;公司很容易看到云费用如滚雪球般失控…

ABAP—ALV 进阶:对展示数字要求负号提前、有千分符、有百分号

1、负号提前 问题描述&#xff1a;SAP的数据&#xff0c;例如金额&#xff0c;为负数时&#xff0c;负号放在数值后面&#xff0c;不符合一般的负号在前的读数习惯&#xff0c;如何把负号放到数值前面&#xff1f; 解决办法&#xff1a;使用 CLOI_PUT_SIGN_IN_FRONT CALL FU…