从redis流和python获取int或float响应

htrmnn0y  于 2021-06-08  发布在  Redis
关注(0)|答案(2)|浏览(825)

我将数据添加到redis流中,数据是整数或浮点数

> XADD name 1-0 field 1
> XADD name 1-1 field 2

然后我有一个python应用程序来读取流数据。

r = redis.Redis(host=HOST,port=PORT,decode_responses=True)

latest = r.xrevrange(
        name="name",
        count=1
    )

# [[

# "1-1",

# {

# "field":"2"  ##data is str not int

# }

# ]]

问题是字典中的结果数据将始终是字符串格式。有人建议我使用hiredis,但我找不到如何获得非字符串输出。有没有办法让redis或hiredis自动将数据转换成正确的数字类型?还是我必须自己来完成这个角色?

sq1bmfud

sq1bmfud1#

redis是一个文本/二进制数据库。插入 int 输入后立即将其转换为字符串。
必须将响应转换回 int 你自己。解码响应仅解码 bytes 对…的React str .

kzmpq1sx

kzmpq1sx2#

或者在存储对象之前和检索对象之后使用pickle。

r.set('some_key', pickle.dumps(obj)
obj = pickle.loads(r.get('some_key'))

就redis而言,它是在存储和检索字节。

相关问题