>  기사  >  데이터 베이스  >  Redis에서 AOF의 원리와 단점에 대한 간략한 분석

Redis에서 AOF의 원리와 단점에 대한 간략한 분석

青灯夜游
青灯夜游앞으로
2021-11-10 10:26:272595검색

이 글은 Redis Persistence의 AOF를 이해하고 AOF의 원리와 AOF의 단점을 소개하는 글입니다. 모든 분들께 도움이 되기를 바랍니다!

Redis에서 AOF의 원리와 단점에 대한 간략한 분석

AOF

Redis에서 AOF의 원리와 단점에 대한 간략한 분석

  • 위에서 우리는 rRedis의 지속성 방법 중 하나가 RDBRedis中的一种持久化方式就是RDB
    • 此文我们来讲另一种实现方式那就是AOF

    • AOF是通过只记录Redis写入命令的追加式日志文件

    • AOF日志存储的因为是顺序指令,所以在Redis宕机后,内部"重走一遍老路",就可以达到恢复数据的目的

【相关推荐:Redis视频教程

AOF原理

  • 每次我们执行写入命令的时候,Redis都会把命令追加到AOF文件里面
    • 实际是将内容写到内存的一个缓存汇总

    • 所以Redis需要实时的去调用Linux提供的fsync函数每次将制定文件从内核缓存写到磁盘

    • 因为如果实时的去调用函数是非常我们也可以通过改变配置参数来调整调用fsync函数的频率

重写

  • 如果一直追加AOF文件,日志会变得越来越大
    • 所以Redis内部实现了「重写」,用来压缩文件
    • 首先因为很多的key-value早就已经国企,或者很多值不断被更新,那么日志还存这些无用的数据显然是可以进行优化的
    • 所以创建一个子进程对内存进行遍历
    • 遍历成一个新的文件日志,所以实现了只有最新的值才需要存储在AOF日志中
    • 我们可以使用下图的命令来开启重写,当然也可以设置成自动执行AOF

Redis에서 AOF의 원리와 단점에 대한 간략한 분석

AOF

라고 언급했습니다. 또 다른 구현 방법인 AOF
  • AOFRedis 쓰기 명령만 기록하는 추가 전용 로그 파일입니다
  • AOF 로그는
  • 순차 지침
을 저장하므로 Redis가 다운된 후 내부적으로 "이전 경로를 다시 이동"하여 데이터 복구 목적을 달성할 수 있습니다

🎜🎜【관련 권장 사항: Redis 비디오 튜토리얼🎜】🎜

🎜AOF 원칙🎜🎜🎜🎜write 명령을 실행할 때마다 Redis는 해당 명령을 AOF 파일에 추가합니다🎜🎜🎜 실제로는 콘텐츠를 메모리🎜🎜🎜🎜에 기록하는 캐시 요약이므로 Redis는 매번 Linux에서 제공하는 fsync 함수를 실시간으로 호출해야 합니다. time 커널 캐시에서 지정된 파일을 디스크에 씁니다🎜🎜🎜🎜함수를 실시간으로 호출하는 것이 매우 중요하다면 다음을 변경하여 fsync 함수 호출 빈도를 조정할 수도 있습니다. 구성 매개변수🎜🎜🎜🎜🎜

🎜Rewrite🎜

🎜🎜AOF 파일을 계속 추가하면 로그가 점점 더 커집니다. 🎜🎜그래서 Rediscode>는 파일을 압축하기 위해 내부적으로 "재작성"을 구현합니다🎜🎜우선 많은 키-값이 이미 국유이거나 많은 값이 있기 때문입니다 ​​지속적으로 업데이트되고 있지만 로그는 여전히 이러한 쓸모없는 데이터를 저장합니다. 확실히 최적화할 수 있습니다🎜🎜그래서 메모리를 순회하는 하위 프로세스를 생성하세요🎜🎜새 파일 로그로 이동하므로 최신 값만 AOF log🎜🎜 아래 명령을 사용하여 다시 쓰기를 활성화할 수 있습니다. 물론 AOF🎜🎜🎜🎜🎜Redis에서 AOF의 원리와 단점에 대한 간략한 분석🎜

🎜AOF단점 🎜🎜🎜🎜🎜매번 전체 메모리를 순회하면 시스템에 많은 추가 성능 오버헤드가 발생합니다.🎜🎜🎜🎜매번 데이터를 복구하는 것은 시간이 오래 걸리고 IO 성능을 소모할 때마다 커널을 디스크에 추가합니다🎜 🎜🎜🎜더 많은 프로그래밍 관련 지식을 보려면 🎜프로그래밍 소개🎜를 방문하세요! ! 🎜

위 내용은 Redis에서 AOF의 원리와 단점에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제