redis.exceptions.ResponseError:未知命令“JSON.SET”与redis-py

问题描述 投票:0回答:1

无论我尝试什么,我都会不断收到此错误消息。

import redis

r = redis.Redis(host='127.0.0.1', port=6379)
r.ping() # -> True


r.json().set('test', '.', '{"foo": "bar"}')
# -> redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'test' '.' '{"foo":"bar"}'

基于 redis-py 示例的代码

redis-py版本:5.0.7(最新)

Docker 镜像:

docker run -d --name redis-stack -p 6379:6379 redis/redis-stack:latest

启用Redis JSON模块(redis-stack容器) docker-cli 信息模块:

模块:名称=RedisCompat,ver=1,api=1,过滤器=0,usedby=[],using=[],选项=[] 模块:name=search,ver=20814,api=1,filters=0,usedby=[],using=[ReJSON],options=[handle-io-errors] 模块:name=timeseries,ver=11012,api=1,filters=0,usedby=[],using=[],options=[] 模块:name=redisgears_2,ver=20023,api=1,filters=0,usedby=[],using=[],options=[] 模块:名称=ReJSON,ver=20610,api=1,过滤器=0,usedby=[搜索],using=[],选项=[处理io错误] 模块:name=bf,ver=20612,api=1,filters=0,usedby=[],using=[],options=[]

通过 CLI 设置正在工作:

127.0.0.1:6379> JSON.SET 'test' . '{"hello":"world"}'

实际上这些命令都不起作用:JSON.SET、JSON.GET、FT.CREATE ....

很奇怪... 有谁知道为什么这不起作用?

python redis redis-py
1个回答
0
投票

我可以在 Redis 服务器上重现该错误(没有模块)。在 Redis Stack 服务器上一切正常。查看脚本使用的端口上运行的实例。

我在简单的 Redis 服务器上得到了这个。

  File "/Users/mortensi/venvs/ps/lib/python3.9/site-packages/redis/connection.py", line 536, in read_response
    raise response
redis.exceptions.ResponseError: unknown command 'JSON.SET', with args beginning with: 'test' '.' '"{\"foo\": \"bar\"}"'
© www.soinside.com 2019 - 2024. All rights reserved.