Redis 数据序列化方法 serialize, msgpack, json, hprose 比较

  1. 云栖社区>
  2. 博客>
  3. 正文

Redis 数据序列化方法 serialize, msgpack, json, hprose 比较

zsjangel 2015-07-13 15:58:00 浏览1947
展开阅读全文

最近弄 Redis ,涉及数据序列化存储的问题,对比了:JSON, Serialize, Msgpack, Hprose 四种方式

1. 对序列化后的字符串长度对比:

测试代码:

$arr = [0, 1, 2, 'a', 'b', 'c', 'd', 'a'=>'12', '包含中文', 'abcd包含中文efg'=>'abc一二三四defg', '键名'=>['abc'=>['def'=>123, 456, 'abcd中文内容efg'], 'a之间c'=>['a'=>123, 'c', 5=>6]]];
$str = hprose_serialize($arr);
echo 'Hprose: ';
echo '<br>';
echo '长度: '. strlen($str);
echo '<br>';
echo '内容:'. $str;
echo '<hr>';
$str = msgpack_pack($arr);
echo 'Msgpack: ';
echo '<br>';
echo '长度: '. strlen($str);
echo '<br>';
echo '内容:'. $str;
echo '<hr>';
$str = json_encode($arr);
echo 'JSON: ';
echo '<br>';
echo '长度: '. strlen($str);
echo '<br>';
echo '内容:'. $str;
echo '<hr>';
$str = serialize($arr);
echo 'Serialize: ';
echo '<br>';
echo '长度: '. strlen($str);
echo '<br>';
echo '内容:'. $str;
echo '<hr>';

结果:

Hprose:
长度: 196
内容:m11{0011223ua4ub5uc6uds1”a”s2”12”7s4”包含中文”s11”abcd包含中文efg”s11”abc一二三四defg”s2”键名”m2{s3”abc”m3{s3”def”i123;0i456;1s11”abcd中文内容efg”}s4”a之间c”m3{r1;i123;0uc56}}}


Msgpack:
长度: 139
内容:�

网友评论

登录后评论
0/500
评论
zsjangel
+ 关注