与其他NoSql数据库(例如Memecache)不同,Jedis并没有提供默认的序列化工具,这样开发者需要自己引入序列化工具。将对象序列化到Redis中可以选取多种序列化方案,例如Xml,Json,Protobuf,Thrift等
### 选取FastJson和protostuff进行效率比对
#### 测试方法
1. 每次生成1000个POJO对象,每个POJO对象中都包含有1个List,List中也包含了1000个POJO对象。
2. 将生成的1000个POJO对象序列化并存储到Redis中
3. 从耗时和Redis内存占用两个维度观察不同序列化方案的表现
#### 测试结果
测试 | FastJson|Protostuff-runtime
-------|----------|-----------
耗时(毫秒) | 4566 | 2098
Redis内存占用(MB) | 366.43 | 273.85
Protostuff在耗时上是FastJson的50%左右。
Protostuff在内存占用上是FastJson的75%左右。
可以看出Protostuff在耗时和内存占用上都优于FastJson,但是使用Protostuff序列化后的数据不具有可读性,在选择序列化方案时还是需要根据需求来选择。
下面给出测试步骤与代码
#### 测试步骤与代码
##### 测试代码
测试使用的POM
网友评论