我可以有一个名字相同的布景和布景吗?

时间:2019-02-04 17:19:54

标签: java database redis jedis

给定代码的输出是什么? 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;
}

1 个答案:

答案 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"

请参见Redis command reference