Redis面试题详解:优缺点、应用场景和高性能特点

版权申诉
0 下载量 36 浏览量 更新于2024-06-26 收藏 1.65MB PDF 举报
Redis面试题70道 **概述** Redis是一款开源的高性能key-value非关系缓存数据库,使用C语言编写,支持多种数据类型,包括string、list、set、zset和hash等。Redis的数据都基于缓存的,所以读写速度非常快,每秒可以处理超过10万次读写操作,是已知性能最快的Key-ValueDB。Redis也可以实现数据写入磁盘中,保证了数据的安全不丢失,而且Redis的操作是原子性的。 **Redis的优点** 1. 读写性能优异:Redis能读的速度是110000次/s,写的速度是81000次/s。 2. 支持数据持久化:支持AOF和RDB两种持久化方式。 3. 支持事务:Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。 4. 数据结构丰富:除了支持string类型的value外还支持hash、set、zset、list等数据结构。 5. 支持主从复制:主机会自动将数据同步到从机,可以进行读写分离。 **Redis的缺点** 1. 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写。 2. Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。 3. 主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。 4. Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。 **使用Redis的好处** 1. 速度快:因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都很低。 2. 支持丰富数据类型:支持string、list、set、sortedset、hash等多种数据类型。 3. 支持事务:操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行。 4. 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除。 **为什么要用Redis** Redis可以满足高性能和高并发的需求,主要体现在以下两个方面: 1. 高性能:假如用户第一次访问数据库中的某些数据,由于Redis可以将数据存储在内存中,从而大大提高了读写速度。 2. 高并发:Redis可以处理高并发的读写请求,满足了高并发的需求。