No matter what I try, I keep getting this error message.
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"}'
Code based on redis-py example
redis-py version: 5.0.7 (latest)
Docker image:
docker run -d --name redis-stack -p 6379:6379 redis/redis-stack:latest
Redis JSON module is enabled (redis-stack container)
docker-cli info modules:
module:name=RedisCompat,ver=1,api=1,filters=0,usedby=[],using=[],options=[]
module:name=search,ver=20814,api=1,filters=0,usedby=[],using=[ReJSON],options=[handle-io-errors]
module:name=timeseries,ver=11012,api=1,filters=0,usedby=[],using=[],options=[]
module:name=redisgears_2,ver=20023,api=1,filters=0,usedby=[],using=[],options=[]
module:name=ReJSON,ver=20610,api=1,filters=0,usedby=[search],using=[],options=[handle-io-errors]
module:name=bf,ver=20612,api=1,filters=0,usedby=[],using=[],options=[]
Setting via CLI is working:
127.0.0.1:6379> JSON.SET 'test' . '{"hello":"world"}'
Actually none of the commands work: JSON.SET, JSON.GET, FT.CREATE ….
Very strange…
Does anyone have any idea why this is not working?