当前位置: 首页 > 后端技术 > PHP

坚持

时间:2023-03-29 22:48:01 PHP

1.Redis的所有数据都保存在内存中,数据的更新会异步保存到磁盘中。2、持久化方式:快照(MySQLDump和RedisRDB)、日志写入(MySQLBinlog和RedisAOF)3、RedisRDB触发方式save(同步命令,替换旧文件)bgsave(异步命令,fork()一个进程处理会一般很快)自动命令savebgsaveIO类型同步异步是否阻塞是(发生在fork())复杂度O(n)O(n)优点不消耗额外内存不阻塞客户端命令缺点阻塞客户端命令需要fork消耗memory4.自动生成RDB配置,本质就是每一秒都会有变化,执行bgsave。相关配置:stop-writes-on-bgsave-errorbgsave时是否停止写dirrdbdirectoryrdbcompression是否压缩rdbchecksumchecksumchecksumcheckbestpractice:dbfilenamedump-${port}.rdbdir/bigdiskpathstop-writes-on-bgsave-erroryesrdbcompressionyesrdbchecksumyes5.rdb生成触发机制全拷贝,调试重载,关机。6、RDB耗时耗性能。O(n)数据:耗时fork():内存消耗,copy-on-write策略磁盘I/O:IO性能7.RDB不可控,数据可能丢失。8.AOF的三种策略alwayswritecommandrefreshbuffereverysecdefaultnooperatingsystemdecidescommandalwayseverysec没有优点不每秒丢失一次数据fsync不关心缺点IO开销大一般sata盘只有几百TPS丢失一秒数据不可控9、AOF重写功能,减少硬盘占用,加快恢复速度。实现AOF重写有两种方式:bgrewriteaof,AOF重写配置。10、AOF重写配置auto-aof-rewrite-min-size:AOF文件重写所需大小auto-aof-rewrite-percentage:AOF文件增长速度aof_current_size:AOF当前大小aof_base_size:AOF上次启动重写后的大小11.AOF配置最好appendonlyyesappendfilename"appendonly-${port}.aof"appendfsynceverysecdir/bigdiskpathno-appendfsync-on-rewriteyesauto-aof-rewrite-percentage100auto-aof-rewrite-min-size64mb12.rdb和AOF对比命令RDBAOF启动优先级低高容量小大恢复速度快数据安全丢失数据取决于策略