I’m trying to run the sample program from this RedisLabs page.
I chose Option A – which was to set up the free Redis cloud server.
(Seems like if you install manually, then you have to add the JSON as a plugin.)
I’m able to connect and use other "set" commands, but getting error on JSON:
File "C:Usersnwalt.virtualenvsTDAmeritradeGetQuoteslibsite-packagesredisclient.py", line 901, in execute_command
return self.parse_response(conn, command_name, **options)
File "C:Usersnwalt.virtualenvsTDAmeritradeGetQuoteslibsite-packagesredisclient.py", line 915, in parse_response
response = connection.read_response()
File "C:Usersnwalt.virtualenvsTDAmeritradeGetQuoteslibsite-packagesredisconnection.py", line 756, in read_response
raise response
redis.exceptions.ResponseError: unknown command 'JSON.SET'
My Python test program (except put in the sample endpoint before posting):
import redis
import json
import pprint
host_info = "redis.us-east-1-1.ec2.cloud.redislabs.com"
redisObj = redis.Redis(host=host_info, port=18274, password='xxx')
print ("Normal call to Redis")
redisObj.set('foo', 'bar')
value = redisObj.get('foo')
print(value)
capitals = {
"Lebanon": "Beirut",
"Norway": "Oslo",
"France": "Paris"
}
print ("capitals - before call to Redis")
pprint.pprint(capitals)
print("JSON call to Redis")
redisObj.execute_command('JSON.SET', 'doc', '.', json.dumps(capitals))
print("Data Saved, now fetch data back from redis")
reply = json.loads(redisObj.execute_command('JSON.GET', 'doc'))
print("reply from Redis get")
pprint.pprint(reply)
This is the screen shot from their website where I created the database. I didn’t see any option to enable JSON or add any modules.
2
Answers
Not sure this was available when I created the REDIS database, but it is now. When you create it on redislabs.com, you can turn on the modules, and pick one from the list.
Then use this library: "rejson" from https://pypi.org/project/rejson/ to get the method "jsonset" method, using such code such as this:
I’m not used the cloud redis, in my local the Python don’t load the JSON.SET
I just so make done, in this sample
https://onelinerhub.com/python-redis/save-json-to-redis