我正在使用 Redis 及其java接口 Jedis 但是我遇到了如何保存字节数组列表的问题,我看过set但是它有效仅用于字符串,当我尝试创建一个列表时,添加一个字节数组,但是当我尝试将另一个字节数组添加到该列表时,我得到一个异常,我该如何解决?
提前感谢。
代码:
byte[] data = {12,23,45,67,127};
byte[] data2 = {13,25,46,68,121,44};
String id = "xyzd12";
jedis.lpush(id.getBytes(),data);
jedis.rpush(id.getBytes(),data2);
当我运行该代码时,我得到例外:redis.clients.jedis.exceptions.JedisDataException: ERR Operation against a key holding the wrong kind of value
答案 0 :(得分:0)
该错误消息表示您尝试对错误的数据类型执行某些操作。
即,您尝试对键id.getBytes()
执行列表操作,但id.getBytes()
不是列表类型。您的redis实例似乎已经拥有该密钥,而且它不是列表。
# redis.c
shared.wrongtypeerr = createObject(REDIS_STRING,sdsnew("-WRONGTYPE Operation against a key holding the wrong kind of value\r\n"));
# t_list.c
if (lobj && lobj->type != REDIS_LIST) {
addReply(c,shared.wrongtypeerr);
return;
}