0

I am trying to connect redis server using aredis api. Since the server is secured.Am trying to authenticate using AsyncRedisFactory.setAuth(host, password); After authenticated sending set command to write some value in 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);

When trying to do that facing below exception,

Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to org.aredis.io.ClassDescriptors at org.aredis.cache.RedisClassDescriptorStorage.getMasterClassDescriptors(RedisClassDescriptorStorage.java:120) at org.aredis.io.OptiObjectOutputStream.(OptiObjectOutputStream.java:88) at org.aredis.io.OptiObjectOutputStream.(OptiObjectOutputStream.java:106) at org.aredis.cache.JavaHandler.optiWriteObject(JavaHandler.java:150) at org.aredis.cache.JavaHandler.serialize(JavaHandler.java:225) at org.aredis.cache.RedisCommandObject.writeArg(RedisCommandObject.java:108) at org.aredis.cache.RedisCommandObject.generateRequestData(RedisCommandObject.java:192) at org.aredis.cache.RedisCommandList.generateRequestData(RedisCommandList.java:166) at org.aredis.cache.AsyncRedisConnection.submitCommands(AsyncRedisConnection.java:759) at org.aredis.cache.AsyncRedisConnection.submitCommand(AsyncRedisConnection.java:847) at org.aredis.cache.AbstractAsyncRedisClient.submitCommand(AbstractAsyncRedisClient.java:74)

PravinKumar.R
  • 335
  • 1
  • 3
  • 15

1 Answers1

0

Send AUTH command before passing another command to Redis server.

asynCon.submitCommand(RedisCommand.AUTH, password);

PravinKumar.R
  • 335
  • 1
  • 3
  • 15