给定代码的输出是什么?
绝地武士能在数据库中保存两个不同类型但同名的数据集吗?
如果没有,在印刷线上,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;
}

最佳答案

您的示例在尝试使用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
SET
HSET

08-28 09:27