美文网首页Java面试篇
面试题之redis篇

面试题之redis篇

作者: TZX_0710 | 来源:发表于2020-08-27 14:16 被阅读0次
    1. 为什么要用redis?
    1. 高性能 从数据库读取是从硬盘上读取,操作缓存直接操作内存中读取,速度快
    2. 高并发 缓存的请求量是远远大于直接访问数据库的,这样用户的一部分请求不用经过数据库
    1. 为什么开发喜欢使用Hash结构存储?

    hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象,后续操作可以直接修改这个对象中的某个字段值

    1. redis持久化机制 RDB和AOF

    RDB是通过创建快照来获得内存里面的数据在某个时间点的备份。快照是默认的redis持久化方式
    AOF 持久化方式,让redis每秒同步一次AOF文件,redis性能几乎没收到任何影响,用户的数据最多丢失1秒内的数据。

    1. 什么是redis雪崩?怎么解决

    缓存同一时间大面积失效,后续请求全都转移到数据库上,数据库承受不住崩掉
    尽量保证整个集群的高可用,发现问题 立马重启 补充上去
    事前;本地使用ehcache缓存+hystrix限流&降级避免mysql崩掉
    事后:采用AOFredis 的持久化机制保存数据,尽快恢复数据

    1. 什么是缓存穿透?

    缓存穿透:请求缓存不存在的数据,请求落到数据库上去,导致数据库崩溃
    解决方案:可以把这个结果仍然为空的数据,也缓存到redis 设置有效时间最长不超过5秒。 能减少缓存穿透

    1. redis与mysql数据库同步?

    redis启动的时候去mysql读取所有的表放入redis中,往redis写数据的时候,对主键自增并进行读取,mysql更新失败,及时清除缓存及同步redis主键

    1. redis的内存淘汰策略
    1. noeviction 内存不足以容纳新写入的数据,写入操作报错
    2. allkeys-lru: 内存不足容纳新数据时,移除最少使用的key
    3. allkeys-random :当内存不足以容纳新写入数据时,随机移除某个

    相关文章

      网友评论

        本文标题:面试题之redis篇

        本文链接:https://www.haomeiwen.com/subject/miycsktx.html