【面试-Redis】说说Redis的优缺点

140 阅读2分钟

面试官:我看你简历上写的熟悉Redis,那你就先说说Redis的优缺点
赵德柱:没问题~~~

优点

  1. 支持丰富的数据类型,包括String、Hash、List、Set、SortedSet五种基本数据类型以及HyperLogLog、GEO、BitMap等几种扩展的数据类型,可以应对很多的业务场景
  2. 底层数据结构非常高效,包括String底层的简单动态字符串、Hash底层的zipList和哈希表、有序集合底层的zipList和skipTable等都是很高效的数据结构,达到节省内存、快速读写的效果
  3. 基于内存进行读写,读的速度可达到110000次/s,写的速度可达到80000次/s,性能非常好
  4. 采用了非阻塞式IO、IO多路复用等技术,使用单线程执行操作,减少了线程上下文切换带来的资源消耗
  5. 支持丰富的功能,比如键过期功能、地理位置计算功能、发布订阅功能、基于List或Stream实现的消息队列功能等
  6. 支持持久化,最大限度的防止数据丢失
  7. 支持主从架构、哨兵机制、分片集群等

缺点

  1. 数据的读写基于内存,有数据丢失的风险,无法支持海量数据的高性能读写
  2. 基于AP架构模型实现,存在数据不一致的风险
  3. 支持事务,但某些错误下不支持事务的回滚,比如A操作和B操作一起执行,A执行完了,执行B时出现了运行错误,这时不会回滚A操作
  4. 不支持复杂的聚合计算,比如计算某些数据的平均值、总值等