이 글은 Redis Persistence의 AOF를 이해하고 AOF의 원리와 AOF의 단점을 소개하는 글입니다. 모든 분들께 도움이 되기를 바랍니다!
Redis
의 지속성 방법 중 하나가 RDB
Redis
中的一种持久化方式就是RDB
此文我们来讲另一种实现方式那就是AOF
AOF
是通过只记录Redis
写入命令的追加式日志文件
AOF
日志存储的因为是顺序指令,所以在Redis
宕机后,内部"重走一遍老路",就可以达到恢复数据的目的
【相关推荐:Redis视频教程】
Redis
都会把命令追加到AOF
文件里面实际是将内容写到内存的一个缓存汇总
所以Redis
需要实时的去调用Linux
提供的fsync
函数每次将制定文件从内核缓存写到磁盘
因为如果实时的去调用函数是非常我们也可以通过改变配置参数来调整调用fsync
函数的频率
AOF
文件,日志会变得越来越大Redis
内部实现了「重写」,用来压缩文件key-value
早就已经国企,或者很多值不断被更新,那么日志还存这些无用的数据显然是可以进行优化的AOF
日志中AOF
AOF
AOF
AOF
는 Redis
쓰기 명령만 기록하는 추가 전용 로그 파일입니다AOF
로그는 Redis
가 다운된 후 내부적으로 "이전 경로를 다시 이동"하여 데이터 복구 목적을 달성할 수 있습니다 🎜🎜【관련 권장 사항: Redis 비디오 튜토리얼🎜】🎜Redis
는 해당 명령을 AOF
파일에 추가합니다🎜🎜🎜 실제로는 콘텐츠를 메모리🎜🎜🎜🎜에 기록하는 캐시 요약이므로 Redis
는 매번 Linux
에서 제공하는 fsync
함수를 실시간으로 호출해야 합니다. time 커널 캐시에서 지정된 파일을 디스크에 씁니다🎜🎜🎜🎜함수를 실시간으로 호출하는 것이 매우 중요하다면 다음을 변경하여 fsync
함수 호출 빈도를 조정할 수도 있습니다. 구성 매개변수🎜🎜🎜🎜🎜AOF
파일을 계속 추가하면 로그가 점점 더 커집니다. 🎜🎜그래서 Redis
code>는 파일을 압축하기 위해 내부적으로 "재작성"을 구현합니다🎜🎜우선 많은 키-값
이 이미 국유이거나 많은 값이 있기 때문입니다 지속적으로 업데이트되고 있지만 로그는 여전히 이러한 쓸모없는 데이터를 저장합니다. 확실히 최적화할 수 있습니다🎜🎜그래서 메모리를 순회하는 하위 프로세스를 생성하세요🎜🎜새 파일 로그로 이동하므로 최신 값만 AOF log🎜🎜 아래 명령을 사용하여 다시 쓰기를 활성화할 수 있습니다. 물론 AOF
🎜🎜🎜🎜🎜🎜AOF
단점 🎜🎜🎜🎜🎜매번 전체 메모리를 순회하면 시스템에 많은 추가 성능 오버헤드가 발생합니다.🎜🎜🎜🎜매번 데이터를 복구하는 것은 시간이 오래 걸리고 IO 성능을 소모할 때마다 커널을 디스크에 추가합니다🎜 🎜🎜🎜더 많은 프로그래밍 관련 지식을 보려면 🎜프로그래밍 소개🎜를 방문하세요! ! 🎜위 내용은 Redis에서 AOF의 원리와 단점에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!