Redis可以说是目前而言,应用最为广泛的一种nosql数据库,其广受欢迎必然有着其独有的优势。
优势一:速度快
redis为什么速度快呢?
最主要的原因就是redis是基于内存的。
Redis将所有的数据都放在内存中进行操作,纯内存访问,没有磁盘的I/O读取,自然就非常的快了。
其次,redis是单线程的。
采用异步非阻塞的多路 I/O 复用,让单个线程高效的处理多个连接请求,减少了网络 IO 的时间消耗,且不存在多线程中线程切换竞争等问题造成的性能损耗。(注意:单线程仅仅指的是网络请求这一模块上用的单线程,整个redis的服务并不是单线程的)
另外还有就是用最贴近操作系统的C语言编写
以及优秀的数据结构和算法等也为速度做出了一定的贡献。
当然,最主要的原因还是基于内存这一点,其提升的速度跟其他因素相比不是一个量级的。
优势二:丰富的数据类型
redis提供了五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
丰富的数据类型不仅能够满足大部分的业务场景需求,同时也极大的提高了业务开发的效率。
同时redis还提供了 Bitmaps(位图),HyperLogLog(去重计数),GEO(地理信息定位),Bloom Filter(布隆过滤器),PubSub(发布/订阅),Pipeline (管道),事务,Lua脚本支持等多项高级功能,能够完美的支持一些特定的应用场景。
优势三:高可用和分布式
redis的集群功能是它真正的分布式实现,能够保证Redis节点的鼓掌发现和自动转移,提供了高可用、读写和容量的扩展性,使其能够适应当今主流的分布式业务部署方案。
正因为有着以上的种种优势,redis才会在目前各大互联网公司广受欢迎,同时也是我们所必须掌握的技术之一。