Tomcat和Redis两台机器都在主备完整的配置步骤
两个怎么配置连接在一起
关于#redis#的问题:Tomcat和Redis两台机器都在主备完整的配置步骤
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
5条回答 默认 最新
檀越@新空间 2025-08-15 11:01关注上午好☀️☀️☀️️
本答案参考通义千问在使用 Tomcat 和 Redis 的场景中,如果两台机器(即 Tomcat 服务器和 Redis 服务器)都采用 主备架构,那么需要确保它们之间的连接是高可用、稳定且安全的。以下是详细的配置步骤,包括如何将 Tomcat 与 Redis 主备节点连接在一起。
一、环境准备
-
Tomcat 服务器
- 确保已安装 JDK、Tomcat。
- 配置好应用(如 Spring Boot、Spring MVC 等),并支持 Redis 连接。
-
Redis 服务器
- 安装 Redis,并配置主从复制。
- 配置哨兵(Sentinel)或集群(Cluster)实现高可用。
-
网络互通
- 确保 Tomcat 与 Redis 主备节点之间可以互相通信(开放端口如
6379)。 - 建议使用内网 IP 或域名解析。
- 确保 Tomcat 与 Redis 主备节点之间可以互相通信(开放端口如
二、Redis 主备配置(主从 + 哨兵)
1. Redis 主节点配置
# 修改 redis.conf port 6379 daemonize yes pidfile /var/run/redis.pid loglevel warning logfile "/var/log/redis/redis-server.log" dir /var/lib/redis2. Redis 从节点配置
# 修改 redis.conf port 6380 daemonize yes slaveof <master_ip> 63793. 启动 Redis 实例
redis-server /etc/redis/redis.conf4. 配置 Redis 哨兵(Sentinel)
创建
sentinel.conf:port 26379 dir /tmp sentinel monitor mymaster <master_ip> 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000 sentinel client-reconfig-script mymaster /path/to/reconfigure.sh启动哨兵:
redis-sentinel /etc/redis/sentinel.conf
三、Tomcat 与 Redis 主备连接配置
1. 使用 Jedis 或 Lettuce 客户端连接 Redis
示例:使用 Jedis 连接 Redis 哨兵
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.JedisSentinelPool; public class RedisConnection { public static void main(String[] args) { // 哨兵节点列表 Set<String> sentinels = new HashSet<>(); sentinels.add("redis-sentinel-1:26379"); sentinels.add("redis-sentinel-2:26379"); // 创建连接池 JedisPoolConfig poolConfig = new JedisPoolConfig(); JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels, poolConfig); try (Jedis jedis = pool.getResource()) { String value = jedis.get("testKey"); System.out.println("Value from Redis: " + value); } } }2. 配置 Spring Boot 应用连接 Redis 哨兵
在
application.properties中添加:spring.redis.sentinel.master=mymaster spring.redis.sentinel.nodes=redis-sentinel-1:26379,redis-sentinel-2:26379或者在
application.yml中:spring: redis: sentinel: master: mymaster nodes: - redis-sentinel-1:26379 - redis-sentinel-2:26379
四、验证连接是否正常
- 在 Tomcat 应用中执行 Redis 操作(如 SET/GET)。
- 模拟 Redis 主节点宕机,观察应用是否能自动切换到从节点。
- 使用
redis-cli检查哨兵状态:redis-cli -p 26379 SENTINEL masters
五、注意事项
- 防火墙设置:确保 Redis 的
6379和哨兵的26379端口在防火墙中开放。 - 密码保护:建议为 Redis 设置密码(
requirepass),并在客户端配置认证。 - 日志监控:定期检查 Redis 和 Tomcat 日志,及时发现连接异常。
- 超时配置:合理设置连接超时时间,避免因网络波动导致应用阻塞。
六、总结
Tomcat 与 Redis 主备连接的核心步骤如下:
- 配置 Redis 主从和哨兵,确保高可用性。
- 在 Tomcat 应用中使用 Jedis 或 Lettuce 客户端,通过哨兵连接 Redis。
- 测试连接稳定性,确保故障转移正常工作。
- 优化网络、权限、超时等配置,提升系统健壮性。
如有具体代码或配置问题,可提供更多信息,我可以帮助你进一步调试和优化。
解决 无用评论 打赏 举报-