シリアライズして圧縮した際のデータサイズの差異

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 でやってみようかと思う。
世の中知らない事が沢山!