支持存储的开源KV缓存方案Membase和Redis特性比较
Membase | Redis | |
Memcached协议兼容 | √ | X |
虚拟内存 | √ | √ |
丰富的数据格式 | String | List,Dict, Set,String |
数据导出(备份) | √ | √ |
启动后数据自行导入内存 | √ | √ |
Hot key | √ | X |
安装依赖 | 很多 | 少 |
Cluster | √ | √ |
性能 | 略好 |
存储
相对传统的磁盘,我们可以引入SSD这种对随机读性能极佳的介质。
1. SSD
对那些数据量大,in-memory方式成本极高。因此必须使用存储+内存(即虚拟内存)方式解决。
如果数据不常更改的,我们可以使用SSD作为二级缓存或者存储介质(一般来说,像微薄,关系链,文章摘要等,都比较适合)。
2. Disk
l 全量in-memory
一般数据量少的,我们直接放在连接的磁盘上即可。全量加载到内存中也很快。
l 局部存储
或者抽取hot key数据放在disk上,已经可以大幅度提高性能了。
3. SSD+Disk
出于性能和成本的平衡,我们可以考虑三层存储,依次RAM --> SSD --> Disk。
这种采用SSD作为二级缓存方案中,RAM和SSD的比例可以是2:8,Disk那层可以用MySQL或者SqlLite作为管理。