文档介绍:误用和常见陷阱分析
孙立@
***@sunli1223
大纲
被误用的NoSQL
NoSQL陷阱
NoSQL与MySQL
NoSQL无处不在
NoSQL运维
被误用的NoSQL
非常容易出现的错误使用方法
循环网络调用
• Memcached的循环和批量GET对比
Map<String, String> result=new HashMap<String, String>();
for (int i = 0,len=; i < len; i++) {
//循环获取memcached数据
(keys[i], memcacheGet(keys[i]));
     }
10个key消耗10ms
//使用批量get协议
 Map<String, Object> objMap = ((keys));
10个key消耗2ms
5倍性能的影响
循环网络调用
• Redis的循环和批量GET对比
Map<String, String> result=new HashMap<String, String>();
for (int i = 0,len=; i < len; i++) {
//循环获取memcached数据
(keys[i], (keys[i]));
     }
100个key消耗10ms
//循环从redis get数据
 (keys);
100个key消耗5ms
2倍性能的影响
不压缩大数据
• 压缩的分类
外部
client压不压缩
缩
NoSQ存储
压缩
不压缩大数据
• 内部压缩和外部压缩
web Web-外部压缩
Web-外部压缩
内部压缩 web
web Web-外部压缩
NoSQL内部压缩,可以减小存储,提外部压缩,可以减小存储,提升IO性能,
升IO性能,不能提升网络IO性能并且能够提升网络IO性能
不压缩大数据
• 压缩对比 CPU消耗可扩展
CPU消耗不可扩展
web Web-外部压缩
Web-外部压缩
内部压缩 web
web Web-外部压缩
无压缩的原始数据压缩后的数据
(1000*1024*1024/8)/(10*1024)=12800 qps (1000*1024*1024/8)/(4*1024)=32000 qps
1000Mb网卡单条数据10KB的理论qps
跨语言交互
serialize 能unserialize?
NoSQL Other
PHP
某压缩算法能解压吗?
NoSQL Other
JAVA
NoSQL陷阱
NoSQL是一个新兴的话题,大量的NoSQL产品
也都是新出来的,难免出现各式各样的陷阱。
不能避免陷阱,但是得掉进去可以爬出来。