无论我尝试什么,我都会不断收到此错误消息。
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版本: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 ....
很奇怪... 有谁知道为什么这不起作用?
我可以在 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\"}"'