Mi-123456 2024-08-16 01:38 采纳率: 18.2%
浏览 5

springmvc redis

jdk: 1.8, jedis: 2.9.3, spring data redis: 1.8.20.RELEASE
使用redis sentinel模式
图中可以正常获取数据,我想知道如何在getString()方法内打印输出当前的redis连接地址
请仔细看题再作答,尽量不要从机器人处复制粘贴答案,很不准。感谢各位了。

  • 写回答

2条回答 默认 最新

  • 一直免费一直爽 2024-08-16 01:38
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    要在getString()方法内打印输出当前的Redis连接地址,你可以使用Jedis的SentinelJedisPool来获取连接,然后通过getCurrentHostMaster()方法获取当前连接的主节点信息。以下是一个示例:

    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisSentinelPool;
    import redis.clients.jedis.JedisSentinelPoolConfig;
    import redis.clients.jedis.SentinelServer;
    
    import java.util.HashSet;
    import java.util.Set;
    
    public class RedisSentinelExample {
        public static void main(String[] args) {
            // 配置哨兵服务器信息
            Set<SentinelServer> sentinels = new HashSet<>();
            sentinels.add(new SentinelServer("127.0.0.1", 26379));
    
            // 配置哨兵池
            JedisSentinelPoolConfig sentinelPoolConfig = new JedisSentinelPoolConfig();
            sentinelPoolConfig.setTimeout(5000); // 设置连接超时时间
            sentinelPoolConfig.setMaxTotal(100); // 设置最大连接数
    
            // 创建哨兵池
            JedisSentinelPool sentinelPool = new JedisSentinelPool("mymaster", sentinels, sentinelPoolConfig);
    
            // 从哨兵池中获取连接
            try (Jedis jedis = sentinelPool.getResource()) {
                // 执行Redis命令
                String value = jedis.get("key");
                System.out.println("Value: " + value);
    
                // 打印当前连接的Redis主节点地址和端口
                String currentHost = jedis.getClient().getCurrentHostMaster().getHost();
                int currentPort = jedis.getClient().getCurrentHostMaster().getPort();
                System.out.println("Current Redis connection: " + currentHost + ":" + currentPort);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 关闭哨兵池
                sentinelPool.close();
            }
        }
    }
    

    在这个示例中,我们首先配置了哨兵服务器的信息,然后创建了一个JedisSentinelPool实例。接着,我们从哨兵池中获取一个Jedis连接,执行Redis命令,并打印当前连接的Redis主节点地址和端口。最后,我们关闭哨兵池。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月16日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?