【问题标题】:Not able to send command to Redis server using aredis api无法使用 aredis api 向 Redis 服务器发送命令
【发布时间】:2018-04-15 09:58:01
【问题描述】:

我正在尝试使用 aredis api 连接 redis 服务器。由于服务器是安全的。我正在尝试使用 AsyncRedisFactory.setAuth(host, password); 进行身份验证 验证后发送 set 命令在 redis db 中写入一些值。

    AsyncRedisConnection asynCon = null;
    AsyncRedisFactory.setAuth(host, password);
    AsyncRedisFactory factory = new AsyncRedisFactory(null);
    factory.setPoolSize(100);
    RedisServerInfo info = new RedisServerInfo(host, port);
    asyncPool = factory.getConnectionPool(info);
    asyncPool.setPoolSize(100);
    String value = "Testing jedis....";
    Future<AsyncRedisConnection> futureCon = asyncPool.borrow((int) (Math.random() * asyncPool.getPoolSize()));
    asynCon = futureCon.get(5, TimeUnit.SECONDS);

    String key = "TEST_KEY";
    byte[] valueStore;
    Object object = null;
    valueStore = SerializationUtils.serialize(value);
    asynCon.submitCommand(RedisCommand.SET, key, valueStore);
    System.out.println("Set Command....completed...");
    asyncPool.returnToPool(asynCon);

当试图面对以下异常时,

线程“主”java.lang.ClassCastException 中的异常:java.lang.String 无法转换为 org.aredis.io.ClassDescriptors 在 org.aredis.cache.RedisClassDescriptorStorage.getMasterClassDescriptors(RedisClassDescriptorStorage.java:120) 在 org.aredis.io.OptiObjectOutputStream.(OptiObjectOutputStream.java:88) 在 org.aredis.io.OptiObjectOutputStream.(OptiObjectOutputStream.java:106) 在 org.aredis.cache.JavaHandler.optiWriteObject(JavaHandler.java:150) 在 org.aredis.cache.JavaHandler.serialize(JavaHandler.java:225) 在 org.aredis.cache.RedisCommandObject.writeArg(RedisCommandObject.java:108) 在 org.aredis.cache.RedisCommandObject.generateRequestData(RedisCommandObject.java:192) 在 org.aredis.cache.RedisCommandList.generateRequestData(RedisCommandList.java:166) 在 org.aredis.cache.AsyncRedisConnection.submitCommands(AsyncRedisConnection.java:759) 在 org.aredis.cache.AsyncRedisConnection.submitCommand(AsyncRedisConnection.java:847) 在 org.aredis.cache.AbstractAsyncRedisClient.submitCommand(AbstractAsyncRedisClient.java:74)

【问题讨论】:

    标签: redis redis-server


    【解决方案1】:

    在将另一个命令传递给 Redis 服务器之前发送 AUTH 命令。

    asynCon.submitCommand(RedisCommand.AUTH, 密码);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      相关资源
      最近更新 更多