当前位置: 首页 > news >正文

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://www.lryc.cn/news/345316.html

相关文章:

  • 2024年四千价位段最具统治力的投影仪,坚果N1S 4K: 4K+三色激光=下一代4K
  • MySQL8.3升级踩坑记录
  • 你写的每条SQL都是全表扫描吗
  • 每日两题 / 24. 两两交换链表中的节点 25. K 个一组翻转链表(LeetCode热题100)
  • 【Linux】模拟实现bash(简易版)
  • C++ | Leetcode C++题解之第67题二进制求和
  • 如何确保UDP文件传输工具有最低稳定的传输速度?
  • 力扣爆刷第133天之动态规划收尾(距离编辑与回文子串)
  • List集合中对asList的使用
  • 软件测试所有测试方法
  • linux 下 /usr/local的作用
  • 【web网页制作】html+css旅游家乡河南开封主题网页制作(4页面)【附源码】
  • MySQL用命令行导出数据库
  • uniapp video 层级覆盖
  • SparkSQL概述
  • docker 和 docker-compose
  • 微信小程序支付(完整版)-ThinkPHP/Uniapp
  • 同时安装多个nodejs版本可切换使用,或者用nvm管理、切换nodejs版本(两个详细方法)
  • 马化腾用了一年多的时间,告诉所有人,视频号小店是新风口!
  • 代码随想录算法训练营第36期DAY19
  • C#图像:1.图像区域分割与提取
  • 炸弹使用技巧
  • SpringAop详解
  • 对XYctf的一些总结
  • Visual Studio和Visual Studio Code适用于哪些编程语言
  • 缓存菜品操作
  • 达梦数据库常用命令整理
  • Vue 组件的三大组成部分
  • MoneyPrinter中的文字转声音国内替换方案
  • 消除试卷手写笔迹的软件免费的有哪些?这几款都不错