Redis(五):常见面试题目详解

1、什么是Redis

Redis 是一个基于内存的高性能 key-value数据库。支持多种数据类型

2、简单描述Redis的特点

Redis本质上是一个key-value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据(内存中)flush到硬盘上进行保存。

纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作,是已知性能最快的key-value DB

Redis的出色之处,不仅仅是性能,Redis最大的魅力是支持保存多种数据结构;

此外,当个value的最大限制是1GB,不像memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能;

Redis的主要缺点,就是数据库容量受到物理内容的限制,不能用做海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上

3、Redis支持的数据类型

String 、List 、 Set、 Sorted Set、 Hash

4、为什么Redis需要把所有数据放到内存中

  • 追求最快的数据读取速度,如果直接磁盘读取会非常慢
  • 为了保证数据安全,也会异步方式将数据写入磁盘
  • 可以设置Redis最大使用的内存,若达到内存限制后将不能继续存取数据

5、Redis是单线程的么?

Redis是单线程处理网络指令请求,所以不需要考虑并发安全问题。
所有的网络请求都是一个线程处理,但不代表所有模块都是单线程。

6、Redis的持久化机制有哪些?区别是什么?优缺点是什么?

  • 1.RDB持久化:原理是将Redis在内存中的数据库记录定时dump到磁盘上的RDB持久化

  • 2.AOF(append only file)持久化:原理是将Redis的操作日志以追加的方式写入文件

区别:
RDB持久化的指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储

image.png

AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录

image.png

RDB 优点:

  • RDB是紧凑的二进制文件,比较合适备份,全量复制等场景
  • RDB恢复数据远快于AOF

RDB缺点:

  • RDB无法实现实时或者秒级持久化
  • 新老版本无法兼容RDB格式

AOF优点:

  • 可以更好地保护数据不丢失
  • appen-only模式读取性能比较高
  • 适合做灾难性的误删除紧急恢复

AOF缺点:

  • 对于同一份文件,AOF文件要比RDB快照大
  • AOF开启后,写的QPS会有所影响,相对于RDB来说,写QPS要下降
  • 数据库恢复比较慢,不适合做冷备

7、Redis的缓存失效策略有哪几种

  • 定时删除策略
    在设置key的过期时间的同时,为该key创建一个定时器,让定时器在可以的过期时间来临时,对可以进行删除
    优点:保证内存尽快释放
    缺点:如果key过多,删除这些key会占用很多CPU时间,而且每个key创建一个定时器,验证影响性能
  • 惰性删除策略
    key过期的时候不删除,每次从数据库获取key的时候去检查是否过期,若过期,则删除,返回null

    优点:CPU占用时间比较少
    缺点:如果key很长时间没有被获取,将不会被删除,可能造成内存泄漏

  • 定期删除策略
    每隔一段时间执行一次删除(在redis.conf配置文件设置hz,1s刷新的频率)过期key的操作

    优点:可以控制删除操作的时长和频率,来减少CPU时间占用,可以避免惰性删除时候内存泄漏的问题
    缺点:对内存友好方面,不如定时策略;对cpu友好方面,不如惰性策略

Redis一般采用惰性策略+定期策略两个相结合

8、什么是缓存命中率?提高缓存命中率的方法有哪些??

  • 命中:可以直接通过缓存获取到需要的数据
  • 不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其他的操作,原因可能是由于缓存中根本不存在,或者缓存已经过期

命中率越高表示使用缓存作用越好,性能越高(响应时间越短,吞吐量越高),并发能力也越好。

重点关注访问评率高且时效性相对低一些的业务数据上,利用预加载(预热)、扩容、优化缓存丽都。更新缓存等手段来提高命中率


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值