本文介绍: 该依赖会和knife4j-openapi2-spring–boot–starter的依赖造成冲突,所以需排除spring–boot–starter–actuator。改为debug和/var/log/redis.log【设置日志打印级别和容器内的日志地址】配置日志文件位置/var/log/sentinel.log、和自己的ip、端口号。配置需要监控的redis的主的ip和端口,自定义名称,这里是mymaster。设置从服务器是否只读【yes只读,no可以写】从:6381【配置文件同6380:改下端口号】
搭建redis主从
准备工作
在/usr/local/software/redis/文件夹下建立如下的文件夹、文件
root@localhost redis]# mkdir -p 6379/conf 6379/data 6379/log
[root@localhost redis]# mkdir -p 6380/conf 6380/data 6380/log
[root@localhost redis]# mkdir -p 6381/conf 6381/data 6381/log
redis
|6379
| conf
-- redis.conf
| data
| log
-- redis.log (777)
|6380
| conf
-- redis.conf
| data
| log
-- redis.log (777)
|6381
| conf
-- redis.conf
| data
| log
-- redis.log (777)
配置主(master)服务器
创建运行容器
docker run -it
--name redis_6379
--privileged
-p 6379:6379
--network wn_docker_net
--ip 172.18.12.10
--sysctl net.core.somaxconn=1024
-e TIME_ZONE="Asia/Shanghai" -e TZ="Asia/Shanghai"
-v /usr/local/software/redis/6379/conf/redis.conf:/usr/local/etc/redis/redis.conf
-v /usr/local/software/redis/6379/data/:/data
-v /usr/local/software/redis/6379/log/redis.log:/var/log/redis.log
-d redis
/usr/local/etc/redis/redis.conf
配置从(slave)服务器
从:6380
docker run -it
--name redis_6380
--privileged
-p 6380:6379
--network wn_docker_net
--ip 172.18.12.11
--sysctl net.core.somaxconn=1024
-e TIME_ZONE="Asia/Shanghai" -e TZ="Asia/Shanghai"
-v /usr/local/software/redis/6380/conf/redis.conf:/usr/local/etc/redis/redis.conf
-v /usr/local/software/redis/6380/data/:/data
-v /usr/local/software/redis/6380/log/redis.log:/var/log/redis.log
-d redis
/usr/local/etc/redis/redis.conf
docker run -it
--name redis_6381
--privileged
-p 6381:6379
--network wn_docker_net
--ip 172.18.12.12
--sysctl net.core.somaxconn=1024
-e TIME_ZONE="Asia/Shanghai" -e TZ="Asia/Shanghai"
-v /usr/local/software/redis/6381/conf/redis.conf:/usr/local/etc/redis/redis.conf
-v /usr/local/software/redis/6381/data/:/data
-v /usr/local/software/redis/6381/log/redis.log:/var/log/redis.log
-d redis
/usr/local/etc/redis/redis.conf
检查是否配置成功
docker exec -it redis_6379 bash
redis-cli
info replication
搭建redis哨兵
准备工作
在/usr/local/software/redis_sentinel/文件夹下建立如下的文件夹、文件
配置主(master)服务器
运行容器
26379:
docker run -it
--name sentinel_26379
--privileged
--network wn_docker_net
--sysctl net.core.somaxconn=1024
--ip 172.18.12.70
-p 26379:26379
-v /etc/localtime:/etc/localtime
-v /usr/local/software/redis_sentinel/26379/conf:/usr/local/etc/redis/conf/
-v /usr/local/software/redis_sentinel/26379/log/sentinel.log:/var/log/sentinel.log
-d redis
redis-sentinel /usr/local/etc/redis/conf/sentinel.conf
26380:
docker run -it
--name sentinel_26380
--privileged
--network wn_docker_net
--sysctl net.core.somaxconn=1024
--ip 172.18.12.71
-p 26380:26380
-v /etc/localtime:/etc/localtime
-v /usr/local/software/redis_sentinel/26380/conf:/user/local/etc/redis/conf/
-v /usr/local/software/redis_sentinel/26380/log/sentinel.log:/var/log/sentinel.log
-d redis
redis-sentinel /user/local/etc/redis/conf/sentinel.conf
26381:
docker run -it
--name sentinel_26381
--privileged
--network wn_docker_net
--sysctl net.core.somaxconn=1024
--ip 172.18.12.72
-p 26381:26379
-v /etc/localtime:/etc/localtime
-v /usr/local/software/redis_sentinel/26381/conf:/usr/local/etc/redis/conf/
-v /usr/local/software/redis_sentinel/26381/log/sentinel.log:/var/log/sentinel.log
-d redis
redis-sentinel /usr/local/etc/redis/conf/sentinel.conf
检查
[root@hao ~]# docker exec -it sentinel_26379 bash
root@be2d68a1ff59:/data# redis-cli -p 26379 -c
127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.133.100:6379,slaves=2,sentinels=3
配置完哨兵之后的代码
在springboot中的yml文件中配置
spring:
redis:
sentinel:
master: mymaster
nodes: 192.168.133.100:26379,192.168.133.100:26380,192.168.133.100:26381
application:
name: smart-replication
使用Redisson分布式锁的Config配置
!!!该依赖会和knife4j-openapi2-spring–boot-starter的依赖造成冲突,所以需排除spring–boot-starter–actuator
!!!该依赖不能使用最新版本,最新版本不兼容springboot3.x以下
<redisson.version>3.17.7</redisson.version>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>${redisson.version}</version>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-actuator</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
@Configuration
public class RedissonConfig {
@Bean
public RedissonClient redissonClient() {
Config config = new Config();
config.useSentinelServers()
.setMasterName("mymaster")
.addSentinelAddress("redis://192.168.201.81:26379")
.addSentinelAddress("redis://192.168.201.81:26380")
.addSentinelAddress("redis://192.168.201.81:26381");
return Redisson.create(config);
}
}
原文地址:https://blog.csdn.net/treadsangerbraes/article/details/134750245
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_35704.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。