Redis知识点(自己整理的面试题,很全面)

废话不多说,直接进入正题

一、redis的优点(为什么用redis)
  1. 高性能:Redis是一个基于内存的数据结构存储系统,因此可以提供非常高的读写性能。此外,Redis还使用了单线程模型、异步I/O和多路复用等技术优化了性能。

  2. 数据结构丰富:Redis支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等,这些数据结构可以满足各种不同的应用需求。

  3. 操作简单:Redis提供简单易用的命令接口,与其他数据库相比,学习成本更低,而且操作灵活方便,支持多种操作方式。

  4. 可扩展性强:Redis可以通过横向扩展来提高系统的性能和容量,支持数据分片、主从复制等功能。

  5. 数据持久化:Redis支持RDB和AOF两种数据持久化方式,可以保证数据不丢失,并且可以在服务器宕机时快速恢复数据。

二、redis的缺点
  1. 数据容量受限:由于Redis的数据存储是基于内存的,因此数据容量受到物理内存大小的限制。如果数据量过大,超出了可用内存的范围,就会导致性能下降或无法存储全部数据。

  2. 持久化机制相对简单:尽管Redis支持数据持久化,但相比于其他一些数据库系统,其持久化机制相对简单。RDB方式可能导致数据丢失,而AOF方式在写入频繁的情况下可能影响性能。

  3. 缺乏复杂查询功能:Redis主要用于缓存和快速读写操作,对于复杂的查询功能支持较弱。虽然有一些类似于SQL的查询指令,但是不如关系型数据库那样强大和灵活。

  4. 单线程模型:Redis使用单线程模型来处理所有的请求,这意味着它无法充分利用多核处理器的能力。在极高并发的场景下,可能会成为性能瓶颈。

  5. 内存消耗较高:由于Redis将数据存储在内存中,因此相对于磁盘存储的数据库系统,它对内存的消耗较高。这也意味着需要更多的服务器资源来支持大规模的数据存储。

三、redis的作用
  1. 缓存:Redis最常见的用途就是作为缓存系统。由于Redis具有高速读写性能和丰富的数据结构,它可以将热门数据存储在内存中,提供快速的访问速度,减轻后端数据库的压力。

  2. 分布式锁:通过Redis的原子操作和分布式特性,可以实现分布式锁,确保在分布式环境下的并发控制和数据一致性。

  3. 发布/订阅系统:Redis支持发布/订阅模式,可以用于构建消息队列、实时通信、事件驱动等应用。发布者可以向指定的频道发布消息,而订阅者可以接收并处理这些消息。

  4. 计数器和统计:Redis的原子操作使得它非常适合用于计数器和统计功能。开发人员可以利用Redis的原子增减操作,实现实时统计、点赞功能、在线人数计算等。

  5. 数据缓存:除了作为缓存系统,Redis还可以用作持久化的数据存储。通过配置合适的持久化方式,可以将数据持久化到硬盘,以便重启后恢复数据。

  6. 任务队列:Redis的列表数据结构可以用来构建任务队列,实现任务的异步处理。生产者可以将任务添加到队列中,消费者则可以从队列中获取任务并进行处理。

  7. 分布式应用:Redis提供了主从复制和分片功能,可以支持分布式应用的横向扩展和高可用性,提供更好的性能和容错能力。

四、redis的基本数据结构
  1. 字符串(String):最简单的数据结构,可以存储字符串、整数或者浮点数。

  2. 哈希(Hash):类似于关联数组,用于存储对象的属性和值,适合存储对象结构化数据。

  3. 列表(List):链表结构,可以在两端进行元素的插入和删除操作,适合实现队列、栈等数据结构。

  4. 集合(Set):无序、不重复的元素集合,支持集合间的交、并、差等运算。

  5. 有序集合(Sorted Set):类似于集合,但是每个元素都会关联一个分数,可以按照分数进行排序,适合实现排行榜等功能。

五、缓存穿透、缓存击穿、缓存雪崩
  1. 缓存穿透:指查询一个不存在的数据,由于缓存和数据库中都没有该数据,所以每次请求都要到数据库中进行查询,造成了极大的性能浪费。攻击者可以通过构造恶意请求来引发缓存穿透。

解决方法:采用布隆过滤器等技术过滤掉不存在的数据,或者将不存在的数据也缓存起来,但是设置较短的过期时间,避免反复查询。

  1. 缓存
  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力慢慢来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值