HBase和Redis的功能上比较相似。都是nosql类型的数据库。但是在适用场景上,两者还是有比较明显的区别的。
下面基于读写性能、数据类型、数据量、部署难易、数据可靠性、应用场景、两者的结合等多个维度来比较一下两者。
读写性能:
HBase写快读慢,HBase的读取时长通常是几毫秒,而Redis的读取时长通常是几十微秒。性能相差非常大。
数据类型:
HBase和Redis都支持KV类型。但是Redis支持List、Set等更丰富的类型。
数据量:
Redis支持的数据量通常受内存限制,而HBase没有这个限制,可以存储远超内存大小的数据。
部署难易:
HBase部署需要依赖hadoop、zookeeper等服务,而Redis的部署非常简单。
数据可靠性:
HBase采用WAL,先记录日志再写入数据,理论上不会丢失数据。而Redis采用的是异步复制数据,在failover时可能会丢失数据。
应用场景:
HBase适合做大数据的持久存储,而Redis比较适合做缓存。如果数据丢失是不能容忍的,那就用只能用HBase;如果需要一个高性能的环境,而且能够容忍一定的数据丢失,那完全可以考虑使用Redis。
两者的结合:
HBase可以用来做数据的固化,也就是数据存储,做这个他非常合适。Redis适合做cache。可以用HBase+Redis实现数据仓库加缓存数据库,速度和扩展性都兼顾。
综合上述比较,我们可以看出。这两者都有各自擅长的领域,不存在相互替代。具体选用哪个服务,要根据具体业务场景、数据量选择最合适的方案。
网友评论