栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis经典面试题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis经典面试题

Redis经典面试题

文章目录
  • 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最好在同一个局域网内。

四.redis最适合的应用场景

会话缓存,全页缓存,队列,排行榜/计数器,发布/订阅

五.Memcache与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)、定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,以及要检查多少个数据库,则由算法决定。

九.redis持久化

AOF和RDB的同时应用:当Redis重启时,它会优先使用AOF文件来还原数据集,因为AOF文件保存的数据集通常比RDB文件所保存的数据集更完整。

1.AOF

优点:数据可靠性高,后台重写也还可以读取,适合紧急恢复数据

缺点:文件比较大,数据会丢一秒

1、持久化原理:每当有一个写命令过来时,就直接保存在我们的AOF文件中。

2丶文件重写原理:redis提供了bgrewriteaof命令。将内存中的数据以命令的方式保存到临时文件中,同时会fork出一条新进程来将文件重写。

3丶AOF也有三种触发机制:1.每修改同步always2.每秒同步everysec:异步操作,每秒记录
如果一秒内宕机,有数据丢失3.从不同步

2.RDB

优点: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。

总结

今日诗句:
成大事不在于力量的大小,而在于能坚持多久

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/859238.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号