关于文件重写需要注意的另一点是:对于
持久化来说,文件重写虽然是强
烈推荐的,但并不是必须的;即使没有文件重写,数据也可以被持久化并在
启动的时候导入;因此在一些实现中,会关闭自动的文件重写,然后通
过定时任务在每天的某一时刻定时执行。
文件重写之所以能够压缩
文件,原因在于:
过期的数据不再写入文件
无效的命令不再写入文件:如有些数据被重复设值
!" #$
!" %&
、有些数据被删除了
! #$ !&
等等
多条命令可以合并为一个:如
! #$ ! %$
!
可以合并为
! # %
。不过为了防止单条命令过大造
成客户端缓冲区溢出,对于
、
、
''
、
(
类型的
"
,并不一定只
使用一条命令;而是以某个常量为界将命令拆分为多条。这个常量在
)'*++,++-+.-
中定义,不可更改,
)
版本中值是
/0
。
文件重写的触发
文件重写的触发
文件重写的触发,分为手动触发和自动触发:
手动触发:直接调用
1
命令,该命令的执行与
1
有些类似:
都是
"
子进程进行具体的工作,且都只有在
"
时阻塞。
自动触发:根据
222!2(
和
222
1
参数,以及
(
和
(
状态确定触发
评论