Исключение Redis в Java-коде Jedis

У меня есть этот код на java через jedis:

int shb1 = jds.storeHypnoBeats(id1, arr1);

который вызывает эту функцию:

int storeHypnoBeats(String id,byte[] data)
{
     db.lpush(id.getBytes(),data);
      return 1;

}

но когда я запускаю код Java, я получаю это исключение:

Exception in thread "main" redis.clients.jedis.exceptions.JedisDataException: ERR Operation against a key holding the wrong kind of value

вот определение arr1 и id :

byte[] arr1 = new byte[]{1,2,3,4,5,6,7,8,9};
String id1 = "id1";

все правильно, как я проверил, зачем мне это?!

заранее спасибо


person flashdisk    schedule 12.03.2015    source источник
comment
Ваш идентификатор ключа не является списком, вы можете проверить тип ключа с помощью функции типа Redis, чтобы подвести итог, у вас уже есть данные в этом ключе, и это не список, поэтому операция завершается ошибкой.   -  person zenbeni    schedule 12.03.2015
comment
на самом деле он отлично работает! Мне пришлось снова перезапустить сервер Redis. :)   -  person flashdisk    schedule 12.03.2015


Ответы (1)


id.getBytes() возвращает массив байтов, но подпись lpush такова:

public Long lpush(String key,String... strings)

Следовательно, ключ должен быть string, а не array of byte.

person user7791786    schedule 12.05.2018