Redis
 sql >> Base de données >  >> NoSQL >> Redis

comment stocker une image dans redis en utilisant python / PIL

En utilisant PIL 1.1.7, le module redis-2.7.2 pip et redis-2.4.10, j'ai pu faire fonctionner ceci :

import Image
import redis
import StringIO

output = StringIO.StringIO()
im = Image.open("/home/cwgem/Pictures/portrait.png")
im.save(output, format=im.format)

r = redis.StrictRedis(host='localhost')
r.set('imagedata', output.getvalue())
output.close()

J'ai trouvé que Image.tostring n'était pas fiable, donc cette méthode utilise StringIO pour faire apparaître une chaîne comme un fichier. Le format=im.format est nécessaire car StringIO n'a pas d'"extension". J'ai ensuite testé que les données d'image étaient bien enregistrées en faisant :

redis-cli --raw get 'imagedata' >test.png

et vérifier que j'ai récupéré une image.