浅析Redis设计之优缺点(redis设计优缺点)
随着数据量的增大,数据层处理延时也越来越高,数据处理变得不可忽视,所以很多系统引入了Redis这样的内存型持久化数据存储系统来帮助处理数据库层的突增的负载,本文将从设计角度来分析Redis的优缺点。
![](https://pic002.cnblogs.com/images/2011-11/351281/201111020724098.png)
从优点方面来看,Redis的数据模型精巧,它结合了key-value的存储以及比较完整的数据结构,提供了比文件或关系型数据库更简单的读写接口;它有多种数据结构类型,包括字符串、列表、集合、有序集合、散列等;一些数据结构,比如有序集合能够支持非常复杂的场景;Redis的操作接口和指令非常多样,具有的特点有原子性,可扩展性,跨平台性,非常灵活。
从缺点来看,Redis本身是单进程模型,有可能受到运行时内存和CPU限制;key过多时失去原子性,也会造成性能问题,为此Redis引入了分区(cluster)机制,使大规模集群支持;Redis支持磁盘持久化,但存在插入算法效率低,会大大降低磁盘体积等问题;Redis文件保存格式特殊,仅支持通过客户端实现读写;Redis的索引是通过哈希表实现的,而不是B+树,查找效率会有限制;Redis的数据扩展只能支持垂直扩展,实现起来对用户比较复杂,使用成本比较大等。
Redis简单、快速,它结合了K-V模型和数据结构,也具有很多特性,用于极少时间处理大量数据会带来很大的精确性,尤其是在实时高峰期数据突增时具有更大的优势;但也存在一些缺点,比如只支持单进程模型等,不同的场景需要各自权衡利弊才能选择出合适的技术。