如何确定我的列表何时存在但是为空?

Bla*_*man 0 redis

我刚学会了当列表为空时,EXISTS返回0.

我正在使用这个处理一个列表:

rpoplpush source target
Run Code Online (Sandbox Code Playgroud)

当我完成处理时,我仍然想看看source是否为空,但是如果密钥存在的话.但由于列表为空,因此返回0.

EXISTS source
(integer) 0
Run Code Online (Sandbox Code Playgroud)

有没有办法知道你的列表是空的,但密钥确实存在于redis中?

Ser*_*sev 5

在redis中,空列表不存在.如果在弹出元素列表后变为空,则将其删除.

    if (listTypeLength(o) == 0) {
        notifyKeyspaceEvent(NOTIFY_GENERIC,"del",
                            c->argv[1],c->db->id);
        dbDelete(c->db,c->argv[1]);
    }
Run Code Online (Sandbox Code Playgroud)