- Redis经典面试题
- 前言
- 一、redis的特点
- 二、redis为什么需要把所有数据方法内存中
- 三.redis常见的性能问题,如何解决?
- 四.redis最适合的应用场景
- 五.Memcache与Redis的区别都有哪些?
- 六.redis优点和缺点
- 七.redis淘汰策略
- 八.redis过期键的删除策略
- 九.redis持久化
- 1.AOF
- 2.RDB
- 总结
二、redis为什么需要把所有数据方法内存中优点:C语言,key-value模式,数据类型:string、list、set、zset(sorted set)、hash。,单个value的数据最大1gb
缺点:Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写。
三.redis常见的性能问题,如何解决?1.最快速度的读写,异步的方法写入磁盘,所以才会有快速和持久化的特征
2.不写如内存,磁盘io速度会严重影响redis性能,如果设置了最大使用的内存,则数据已有记录数达到内存限值后不能继续插入新值。
四.redis最适合的应用场景1.Master写内存快照(数据在某一个时刻的状态记录),save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以Master最好不要写内存快照。
2.aof不重写导致文件增大,aof文件增大会影响master重启的恢复速度,如果数据比较关键,某个Slave开启AOF备份数据,策略为每秒同步一次。
3.不要调用BGREWRITEAOF重写AOF文件,cpu增高,导致服务load(负载)变大,出现短暂服务暂停现象
4.Redis主从复制的性能问题,为了主从复制的速度和连接的稳定性,Slave和Master最好在同一个局域网内。
五.Memcache与Redis的区别都有哪些?会话缓存,全页缓存,队列,排行榜/计数器,发布/订阅
六.redis优点和缺点1.储存方式不同:Memcache是把数据全部存在内存中,数据不能超过内存的大小,断电后数据库会挂掉。Redis有部分存在硬盘上,这样能保证数据的持久性。
2.数据类型不同
3.value大小不同,1mb和1gb
七.redis淘汰策略优点:1.性能极高,100k+每秒读写频率2.丰富的数据类型3.原子性4.丰富的特性–Redis还支持publish/subscribe,通知key过期等等特性
缺点:1.内存增长过快,需要定期删除数据。2.修改配置文件,进行重启,将硬盘中的数据加载进内存,时间比较久。在这个过程中,redis不能提供服务
八.redis过期键的删除策略1.过期淘汰2.使用少的3.要过期的4.任意选择数据淘汰
九.redis持久化(1)、定时删除:在设置键的过期时间的同时,创建一个定时器(timer). 让定时器在键的过期时间来临时,立即执行对键的删除操作。
(2)、惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。
(3)、定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,以及要检查多少个数据库,则由算法决定。
1.AOFAOF和RDB的同时应用:当Redis重启时,它会优先使用AOF文件来还原数据集,因为AOF文件保存的数据集通常比RDB文件所保存的数据集更完整。
2.RDB优点:数据可靠性高,后台重写也还可以读取,适合紧急恢复数据
缺点:文件比较大,数据会丢一秒
1、持久化原理:每当有一个写命令过来时,就直接保存在我们的AOF文件中。
2丶文件重写原理:redis提供了bgrewriteaof命令。将内存中的数据以命令的方式保存到临时文件中,同时会fork出一条新进程来将文件重写。
3丶AOF也有三种触发机制:1.每修改同步always2.每秒同步everysec:异步操作,每秒记录
如果一秒内宕机,有数据丢失3.从不同步
总结优点:1.RDB文件紧凑,全量备份,非常适合用于进行备份和灾难恢复。2.生成RDB文件的时候,redis主进程会fork()一个子进程来处理所有保存工作,主进程不需要进行任何磁盘IO操作。3.RDB
在恢复大数据集时的速度比 AOF 的恢复速度要快。缺点:父进程修改内存子进程不会反应出来,所以在快照持久化期间修改的数据不会被保存,可能丢失数据。
三种机制:save、bgsave、自动化。
执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止
Redis进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时间很短。基本上
Redis 内部所有的RDB操作都是采用 bgsave 命令。比如“save m n”。表示m秒内数据集存在n次修改时,自动触发bgsave。
今日诗句:
成大事不在于力量的大小,而在于能坚持多久



