当前位置: 首页 > 知识库问答 >
问题:

NOAUTH身份验证需要Spring启动数据redis Realease莴苣redis sentinel

屠昌胤
2023-03-14

当我重新启动redis时,会导致java.util.concurrent。ExecutionException:io.莴苣.core。RedisCommandExecutionException:不需要身份验证。为什么使用这样的版本会出现问题

@Configuration
public class RedisConfig {

    @Autowired
    private RedisProperties redisProperties;

    @Bean(destroyMethod = "close")
    public StatefulRedisConnection<String, Object> StatefulRedisConnection() {
        RedisURI redisUri = RedisURI.builder().withPassword(redisProperties.getPassword())
                .withSentinel(redisProperties.getSentinel().getNodes().get(0).split(":")[0],
                        Integer.valueOf(redisProperties.getSentinel().getNodes().get(0).split(":")[1]))
                .withSentinelMasterId(redisProperties.getSentinel().getMaster())
                .withDatabase(redisProperties.getDatabase()).build();
        RedisClient redisClient = RedisClient.create(redisUri);
        return redisClient.connect(new SerializedObjectCodec());
    }
}
public class CacheImpl implements Cache {
    @Autowired
    private StatefulRedisConnection connect;

    public Boolean addCourseInfosCache() {
        RedisAsyncCommands<String, Object> commands = connect.async();
        // disable auto-flushing
        commands.setAutoFlushCommands(false);
        List<RedisFuture<?>> futures = Lists.newArrayList();
        commands.flushCommands();
    }
}

共有2个答案

弘承运
2023-03-14

您可以升级莴苣版本并尝试:

RedisURI redisUri = RedisURI.Builder.sentinel("sentinelhost1", "mymaster").withPassword("abc").build();

董弘新
2023-03-14

莴苣利用了Redis URI的自定义语法。这是模式:

redis :// [password@] host [: port] [/ database]
  [? [timeout=timeout[d|h|m|s|ms|us|ns]]
  [&_database=database_]]

有四种URI方案:

  • redis-独立的Redis服务器
  • rediss-通过SSL连接的独立Redis服务器
  • redis-socket-通过Unix域套接字的独立Redis服务器
  • redis哨兵-Redis哨兵服务器

Redis数据库实例可以指定为URL路径的一部分或作为附加参数。如果两者都提供,则该参数具有更高的优先级。

打印您的redis uri连接字符串并检查您的输入。

 类似资料:
  • 问题内容: 我收到错误 NOAUTH必需的身份验证 。我的laravel版本是5.3,我正在使用predis 1.1.1连接redis。 在etc / redis / redis.conf中,我有: 在.env文件中 在config / database.php中,我有: 我通过以下方式连接redis: 并像这样使用它: 因此,当我注释掉并将密码发送为null时,它可以工作,但在密码到位后却无法工

  • 我尝试使用@ControllerAdvise+@ExceptionHandler来捕获ConstraintViolationException,但是它似乎是以前捕获的,抛出的是TransactionSystemException。 验证数据是非常基本的事情,但出于某种原因,在搜索了很多次之后,我还没有找到解决方案。 编辑:显示代码:

  • 我们正在开发一个iOS应用程序,它使用谷歌来验证firebase。根据https://www . Firebase . com/docs/IOs/guide/user-auth . html # section-log in Firebase说,auth令牌每24小时过期一次。我们想知道以下场景是否是我们需要考虑的: 用户通过Google和Firebase进行身份验证 我们的应用程序将获得一个24

  • } 要获取令牌,我执行以下步骤: > 使用浏览器转到:http://localhost:9000/oauth/authorize?response_type=code&client_id=test&redirect_uri=http%3a%2f%2flocalhost%3a8080%2f&scope=write 首先,它将我重定向到一个登录表单,在那里我输入用户名和密码:admin abc 请帮我

  • 我有我的应用程序在本地工作正常,但当我试图连接到远程服务器我得到这个错误:CLIENT_PLUGIN_AUTH是必需的。

  • 我正在开发JDK 1.8,但我不知道为什么“发布”不起作用。Redis“set”命令正在处理数据。 代码段: 从日志调试输出: