Как отправить несколько пар (ключ, значение) в команду Xadd с помощью Java? - PullRequest
0 голосов
/ 22 декабря 2018

// Я попытался отправить несколько значений в потоки с помощью команды XAdd.

открытый класс LettuceDemo {

public static void main(String[] args) {

    RedisClient redisClient = RedisClient.create("redis://password@localhost:6739/0");
    StatefulRedisConnection<String, String> connection =redisClient.connect();

    RedisStreamCommands<String, String> streamCommands = connection.sync();

     List<String> supplierNames1 = new ArrayList<String>();
     supplierNames1.add("PaymentOption");
     supplierNames1.add("StartDate");
     supplierNames1.add("EndDate");
     supplierNames1.add("RateOfInterest");
     supplierNames1.add("RequiredLoanAmmount");

     List<String> supplierNames2 = new ArrayList<String>();
     supplierNames2.add(String.valueOf(123));
     supplierNames2.add(String.valueOf(765));
     supplierNames2.add(String.valueOf(347746));
     supplierNames2.add(String.valueOf(8347674));
     supplierNames2.add(String.valueOf(34875645));

    Map<List<String>, List<String>> body1 =  Collections.singletonMap(supplierNames1, supplierNames2);
        String messageId = streamCommands.xadd("demo", body1);

    System.out.println("my-stream code reference " + messageId);
    connection.close();
    redisClient.shutdown();


}

}

// Я столкнулсяпроблема при выполнении программы.

Исключение в потоке "main" java.lang.IllegalArgumentException: Message> body.length должно быть кратным 2 и содержать последовательность field1,> value1, field2, value2, fieldN, valueN в io.lettuce.core.internal.LettuceAssert.isTrue (LettuceAssert.java:131) в io.lettuce.core.RedisCommandBuilder.xadd (RedisCommandBuilder.java:2110) в io.yncAc.xadd (AbstractRedisAsyncCommands.java:1499) в sun.reflect.NativeMethodAccessorImpl.invoke0 (нативный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj)) в java.lang.reflect.Method.invoke (Method.java:498) в io.lettuce.core.FutureSyncInvocationHandler.handleInvocation (FutureSyncInvocationHandler.java:57) в io.lettuce.core.internal.AbstractInvocationHandler.invoke (AbstractInvocationHandler.java:80) в com.sun.proxy. $ Proxy0.xadd (неизвестный источник) в com.excent.experiences.tcee.main (LettuceDemo.java:48)

enter image description here

...