ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

redis面试题

2021-07-08 01:31:31  阅读:160  来源: 互联网

标签:AOF 面试题 文件 redis RDB save 数据


  1. 谈谈你对redis的理解

    1. redis是一个基于内存的高性能的key-value形式的数据库,它支持字符串(String) ,列表(List),集合(Set),有序集合(SortedSet),哈希(Hash) 五种基础的数据结构。
  2. redis的优点

    1. 速度快,因为所有的数据都是存在内存中的。
    2. 支持丰富的数据类型:字符串、列表、集合、有序集合和哈希。
    3. 丰富的特性:订阅发布功能、key过期策略、事务等。
    4. 持久化存储:提供 RDB 和 AOF 两种数据的持久化存储方案。
  3. redis的持久化机制

    1. redis提供了两种持久化机制,实现数据的持久化到硬盘。
    2. rdb(快照):在指定的时间间隔内将内存中的数据集快照写入磁盘。默认使用快照持久化方式,在对应的目录下生成一个dump.rdb文件,在重启后,会加载dump.rdb文件恢复数据。
      1. #  save ""
        save 900 1
        save 300 10
        save 60 10000
        
        # By default Redis will stop accepting writes if RDB snapshots are enabled
        # (at least one save point) and the latest background save failed.

        save 900 1表示:900秒内有1次更改,则将内存中的数据快照写入磁盘。

      2. save 300 10表示:300秒内有10次更改,则将内存中的数据快照写入磁盘。

      3. save 60 10000表示:60秒内10000次更改,则将内存中的数据快照写入磁盘。

      4. 工作原理:从主进程fork一个子进程,子进程先将数据写入临时rdb文件中,子进程写完数据后,用新的文件替换原来的旧文件。
    3. aof(日志):redis 默认不开启aof模式。它的出现是为了弥补rdb的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。redis 重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。
      1. 手动开启,将配置文件中的appendonly的no修改为yes 
        appendonly yes
      2. 指定本地数据库文件名,默认值为 appendonly.aof
        appendfilename "appendonly.aof"
      3. AOF的三种持久化方式
        # appendfsync always
        appendfsync everysec
        # appendfsync no
        1. always:一直写,每次发生数据变化就写到磁盘,性能比较差,但安全性最高。
        2. everysec:默认设置,每秒钟同步一次,将多个写命令同步到硬盘。
        3. no:让操作系统决定何时进行同步。
      4. AOF的重写机制
        1. AOF的工作原理是将写操作追加到文件中,文件的冗余内容会越来越多。所以redis 新增了重写机制。当AOF文件的大小超过所设定的阈值时,redis就会对AOF文件的内容压缩。
          auto-aof-rewrite-percentage 100  // 当前写入日志文件的大小超过上一次rewrite之后的文件大小的百分之100时就是2倍时触发Rewrite
          auto-aof-rewrite-min-size 64mb // 当前aof文件大于64mb后触发

          描述:当AOF文件大小是上次rewrite后大小的一倍且文件大于64M时触发。

    4. 总结持久化
      1. Redis 默认开启RDB持久化方式,在指定的时间间隔内,更改次数达到指定数量就执行写操作,将内存中的数据写入到磁盘中。
      2. RDB 持久化适合大规模的数据恢复但它的数据一致性和完整性较差。
      3. Redis 需要手动开启AOF持久化方式,默认是每秒将写操作日志追加到AOF文件中。
      4. AOF 的数据完整性比RDB高,但记录内容多了,会影响数据恢复的效率。
      5. Redis 针对 AOF文件大的问题,提供重写机制。
      6. 建议RDB和AOF都开启,RDB更适合做数据的备份,留一后手。AOF出问题了,还有RDB。
  4. Redis有哪几种数据淘汰策略

    1. volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
    2. volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰
    3. volatile-random:从已设置过期时间的数据集中任意选择数据淘汰
    4. allkeys-lru:从数据集中挑选最近最少使用的数据淘汰
    5. allkeys-random:从数据集中任意选择数据淘汰
    6. no-enviction(驱逐):禁止驱逐数据。

标签:AOF,面试题,文件,redis,RDB,save,数据
来源: https://www.cnblogs.com/apesdust/p/14983265.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有