HBase和Redis的功能上比较相似,都是nosql类型数据库,但是读写性能、支持数据类型、数据大小、部署、在应用场景下,还是有明显差别。
redis | hbase | |
数据大小 | 通常受内存限制 | 受内存限制 |
数据类型 | KV、List、Set等丰富类型 | 只支持KV类型 |
读写性能 | 读快写快 | 读慢写快 |
数据可靠 | Redis采用的是异步复制数据,在failover时可能会丢失数据 | HBase采用WAL,先记录日志再写入数据,理论上不会丢失数据 |
部署难易 | 部署简单 | HBase部署需要依赖hadoop、zookeeper等服务,部署困难 |
应用场景 | Redis比较适合做缓存 | 适合做大数据的持久存储 |
如果数据丢失是不能容忍的,那就用HBase;如果需要一个高性能的环境,而且能够容忍一定的数据丢失,那可以考虑Redis。
Redis适合做cache,HBase适合做数据存储,可以用Redis+HBase实现数据仓库加缓存数据库,速度和扩展性都兼顾。