给定代码的输出是什么? Jedis是否可以在数据库中保存两个不同类型但名称相同的数据集? 如果没有,在打印行,j.get会返回什么? j.set是否转换为j.hset?
我是Redis数据库的新手
public static void main(String[] args) {
Jedis j = new Jedis("slc09sro");
try {
j.set("alex1", "1");
}
catch (Exception e){}
try {
j.set("alex1", "2");
}
catch (Exception e){}
try {
j.hset("alex1", "3", "4");
}
catch (Exception e){}
System.out.println(j.get("alex1"));
j.close;
}
答案 0 :(得分:2)
您的示例在尝试使用hset
方法时将失败。无需Java的简单示例:
$ redis-cli
127.0.0.1:6379> set alex1 1
OK
127.0.0.1:6379> set alex1 2
OK
127.0.0.1:6379> hset alex1 3 4
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> get alex1
"2"
127.0.0.1:6379>
这是因为键alex1
包含字符串值,而不是哈希值。失败的HSET
调用之后,键从上一次SET
调用开始保持不变,因此包含字符串值"2"
。