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

redis分片java实践

linux安装redishttps://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
exit

redis-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

可以看到已经结束了

相关推荐
伯明翰java9 小时前
Java数据类型与变量
java·开发语言
想用offer打牌9 小时前
如何开启第一次开源贡献之路?
java·后端·面试·开源·github
小许学java10 小时前
Spring原理
java·spring·生命周期·作用域·原理
教练、我想打篮球10 小时前
122 Hession,FastJson,ObjectInputStream的序列化反序列化相同引用的处理
java·config·utils
MZWeiei10 小时前
Redis持久化机制中的 AOF机制简单介绍
数据库·redis
酷柚易汛11 小时前
酷柚易汛ERP 2025-12-26系统升级日志
java·前端·数据库·php
侠客行031711 小时前
Mybatis入门到精通 一
java·mybatis·源码阅读
消失的旧时光-194311 小时前
微服务的本质,其实是操作系统设计思想
java·大数据·微服务
Coder_Boy_11 小时前
基于SpringAI的智能平台基座开发-(四)
java·人工智能·spring boot·langchain·springai
码界奇点11 小时前
基于Spring Boot的内容管理系统框架设计与实现
java·spring boot·后端·车载系统·毕业设计·源代码管理