Redis的持久化-AOF
简介AOF比RDB有更好的持久性。在使用AOF的时候,redis会将每一个收到的写命令都通过write()系统函数追加到aof文件中,类似于MySQL的binlog。当redis重启后,会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。
RDB最大的不足之处在于:一旦数据库出现问题,由于RDB文件中保存的数据并不是全新的。从上次RDB文件生成到redis宕机,这段时间的数据全部丢掉了(因为刷写机制还没有触发)。
AOF比RDB有更好的持久性。在使用AOF的时候,redis会将每一个收到的写命令都通过write()系统函数追加到aof文件中,类似于MySQL的binlog。当redis重启后,会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。
AOF的完全持久化方式同时也带来了另一个问题,持久化文件会变得越来越大。(比如我们调用INCR test命令100次,文件中就必须保存全部的100条命令,但其实99条都是多余的。因为要恢复数据库的状态其实文件中保存一条SET test 100就够了)。为了压缩AOF的持久化文件,Redis提供了bgrewriteaof命令。收到此命令后Redis将使用与快照类似的方式将内存中的数据以命令的方式保存到临时文件中,最后替换原来的文件,以此来实现控制AOF文件的增长。
AOF配置
修改配置文件/apps/redis/6379.conf,找到AOF部分:APPEND ONLY MODE
1、是否开启AOF
# 是否开启AOF,默认关闭(no)
appendonly yes
2、指定AOF文件名字
appendfilename "appendonly.aof"
3、配置刷新模式
# Redis支持三种不同的刷写模式:
# appendfsync always #每次收到写命令就立即强制写入磁盘,是最有保证的完全的持久化,但速度也是最慢的,一般不推荐使用。
appendfsync everysec #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,是受推荐的方式。
# appendfsync no #完全依赖OS的写入,一般为30秒左右一次,性能最好但是持久化最没有保证,不被推荐。
4、重写配置
#在日志重写时,不进行命令追加操作,而只是将其放在缓冲区里,避免与命令的追加造成DISK IO上的冲突。
#设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,等rewrite完成后再写入,默认为no
no-appendfsync-on-rewrite no
5、配置自动启动新的日志
#当前AOF文件大小是上次日志重写得到AOF文件大小的二倍时,自动启动新的日志重写过程
auto-aof-rewrite-percentage 100
6、配置重写日志的最小值
#当前AOF文件启动新的日志重写过程的最小值,避免刚刚启动Redis时由于文件尺寸较小导致频繁的重写
auto-aof-rewrite-min-size 64mb
在使用功能镜像的时候,需要对时区进行修改,那么就需要从两个方面来考虑,本文主要记录Dockerfile和docker-compose.yml设置时区。
网页扫描二维码库:Html5-Qrcode,官网地址:https://scanapp.org/html5-qrcode-docs/
以前配置了服务器的免密登录,但是后期重新装了操作系统,那么再次尝试却出现了WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!提示,那么我们需要将以前的公钥删掉
快速排序是对冒泡排序的一种改进,它的基本思想:通过一趟排序将要排序的数据分割成独立的两个部分,其中一个部分的所有数据都比另一个部分的所有数据都要笑,然后再按照此方法对这两部分数据进行快速排序,整个排序过程可以递归进行,以此到达整个数据变成有序序列。
人脸识别技术如今已广泛应用于安全监控、身份验证、人机交互等多个领域。对于开发者而言,利用现有的库如face_recognition可以极大地简化人脸识别的开发过程。本文将详细介绍如何安装face_recognition库,并通过实例展示如何用它来实现一个基本的人脸比对服务。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。