世間一般には、JSONでいいんじゃね?となりますが、いや実際小生もそう思ってましたが、
とある案件でのクローズドβでのログファイルサイズが、サーバ1台あたり2GBとかヤバいことになってしまいまして。クラウドにすればいいだろって?小生もそう思います。是非、我が顧客にそう説明してもらえませんか。もっとも1年前にしたらしいけどね。
pythonだったらpickleでいいんじゃね?となりますが、PHPだと
- JSONでいいんじゃね? http://stackoverflow.com/questions/3040872/pythons-cpickle-deserialization-from-php
- wddxでいいんじゃね? http://ja.wikipedia.org/wiki/WDDX
と牧歌的な意見がでるわでるわ。
小生も基本的には賛成なのですよ。しかし問題は、「中期保存」。中期って何時だって?仮に1週間としましょう。2GB×30台×1週間 とか、結構スゴイサイズなので、小さくしておいて損はないでしょう。第一、カッコワルイ。圧縮しろって?それもその通り。
取り急ぎ、いくつか見つけました。どれも試してないです。試した後に本稿を加筆する可能性アリ。
bencoder https://github.com/nrk/bencoder
bit-torrentの何かの形式らしい
msgpack https://github.com/msgpack
オフィシャルサイトによれば、かなり縮みそうです。コイツが本命かな。
http://msgpack.org/
> require "msgpack" # gem install msgpack > msg = [1,2,3].to_msgpack #=> "\x93\x01\x02\x03" > MessagePack.unpack(msg) #=> [1,2,3]
BSON http://bsonspec.org/
我らが :) MongoDBの内部データ形式。故に pecl Mongoを入れると勝手に付いてきます。
https://github.com/MongoDB/mongo-php-driver