代码之家  ›  专栏  ›  技术社区  ›  David542

Redis channels-尝试获取密钥时的错误类型操作

  •  0
  • David542  · 技术社区  · 6 年前

    我正在使用 Channels Redis 用于websocket操作。不过,我想看看它到底在redis中保存了什么。怎么做?

    到目前为止,我掌握的情况如下:

    >>> import redis
    >>> r = redis.Redis()
    >>> r.keys()
    ['asgi::group:chat_hello', 'asgi::group:chat_lobby', 'asgi::group:chat_hi', 'iTunes+1068285837']
    >>> r.get('asgi::group:chat_hello')
    redis.exceptions.ResponseError: WRONGTYPE Operation against a key holding the wrong kind of value
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   David542    6 年前

    首先,检查问题密钥的类型:

    >>> r.type('asgi::group:chat_hello')
    'zset'
    

    sorted set 在redis。要查看排序集的内容,可以执行以下操作:

    # r.zrange(key, 0, -1) --  0, 1 specifies the starting and ending index, 
                           --  where 0 is the start and -1 is the end
    >>> r.zrange('asgi::group:chat_newplace', 0, -1)
    ['specific.AUWRSlpx!NjGkQvODgPHx']