シリアライズして圧縮した際のデータサイズの差異
Redis の Python クライアントの redis-py で以下のような事をやってみた。
# -*- coding: utf-8 -*- from redis import Redis client = Redis(host=localhost) data = {u'foo': u'bar', u'baz': ['aaa', 'bbb', 'ccc']} client.set('sample', data) ret = client.get('sample') print ret
set には key, value しかダメなはずなので、このコードはエラーになると思ってたが、Redis から get した際に値が文字列として取れた。
# redis-py の内部で str() で変換していた。
文字列だと取り回しがメンドクサイので、以前は value を MessagePack でシリアライズしてそれを突っ込んでた。
今回もそれにするかーと思い以下のように呟いた。
ということで、json + zlib.compress でやってみようかと思う。
世の中知らない事が沢山!