Day9 Redis组态档设定-LAZY FREEING/THREADED IO/KERNEL OOM CONTROL/APPEND ONLY MODE

Redis.config

LAZY FREEING

  • lazyfree-lazy-eviction
  • lazyfree-lazy-expire
  • lazyfree-lazy-server-del
  • replica-lazy-flush

设定延迟释放时机,

https://ithelp.ithome.com.tw/upload/images/20210924/20111658TYp356Q85V.png

# 预设
# 是否在移出时执行非同步删除
lazyfree-lazy-eviction no

# 是否在key过期时执行非同步删除
lazyfree-lazy-expire no

# 是否针对更新数值的命令时执行非同步删除
lazyfree-lazy-server-del no

# 是否在同步Replica时执行非同步 flushDB
replica-lazy-flush no
  • lazyfree-lazy-user-del

是否针对用户端更新数值的命令时执行非同步删除.

https://ithelp.ithome.com.tw/upload/images/20210924/20111658HFa24NuvCY.png

# 预设
lazyfree-lazy-user-del no
  • lazyfree-lazy-user-flush

是否在用户端执行非同步 flushDB.

https://ithelp.ithome.com.tw/upload/images/20210924/20111658UGMaXSRTsy.png

# 预设
lazyfree-lazy-user-flush no

THREADED I/O

  • io-threads
  • io-threads-do-reads

Redis 6.0 支援设定io与read所使用的threads,建议四核心的CPU以上才开启此设定依照需求进行设定,超过八核心建议设定6 threads.

https://ithelp.ithome.com.tw/upload/images/20210924/20111658RzMFBwxrnF.png

# 预设
# io-threads 4
# io-threads-do-reads no

KERNEL OOM CONTROL

  • oom-score-adj

是否开启设定哪些Processes在out of memory时可以被删除.

https://ithelp.ithome.com.tw/upload/images/20210924/20111658RPUZ0OxtGF.png

# 预设
oom-score-adj no
  • oom-score-adj-values

设定可以被删除的Processes范围值,越高代表越容易被删除.

https://ithelp.ithome.com.tw/upload/images/20210924/20111658bBF5yEChxA.png

# 预设
oom-score-adj-values 0 200 800

KERNEL transparent hugepage CONTROL

  • disable-thp

是否关闭hugepage.
(避免CoW造成延迟问题)

https://ithelp.ithome.com.tw/upload/images/20210924/20111658H2eSj8CX31.png

# 预设
disable-thp yes

APPEND ONLY MODE

  • appendonly

异动日志档.

https://ithelp.ithome.com.tw/upload/images/20210924/20111658pLxjGRf2QR.png

# 预设
# 关闭
appendonly no
  • appendfilename

异动日志档案名称.

https://ithelp.ithome.com.tw/upload/images/20210924/20111658pnZvycTsx8.png

# 预设
appendfilename "appendonly.aof"
  • appendfsync

写入日志档模式.

https://ithelp.ithome.com.tw/upload/images/20210924/20111658Tpmwj1zVrA.png

# 预设
# fsync 在每次写入仅附加日志後,速度慢,但最安全。
# appendfsync always

# 每秒fsync一次,速度与安全取得平衡。
appendfsync everysec

# 不要fsync,让操作系统在需要的时候刷新数据,速度快.
# appendfsync no
  • no-appendfsync-on-rewrite

是否在背景aof文件rewrite期间使用fsync.

https://ithelp.ithome.com.tw/upload/images/20210924/20111658PH1HKOUMWq.png

# 预设
no-appendfsync-on-rewrite no
  • auto-aof-rewrite-percentage

设定aof档案差异比例,当aof档案比上次rewrite的差异比例大小。aof rewrite即在aof档案在符合设定大小之後,重新将整个记忆体资料写到aof档案当中,以储存最新的状态(相当於bgsave).

  • auto-aof-rewrite-min-size

aof档案rewrite最小的档案大小,即最开始aof档案必须要达到设定大小时才触发,後面的每次rewrite就不会根据这个设定了(因为根据上一次rewrite完成之後的大小).Redis Server初始化啓动有效.如果是Redis Server恢复时,则lastSize等於初始aof档案大小。

https://ithelp.ithome.com.tw/upload/images/20210924/201116586Ef8G9xaBF.png

# 预设
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
  • aof-load-truncated

Redis Server在恢复时,会忽略最後一条可能存在问题的指令。即在用户端操作当下aof档案写入时,可能存在指令写错的问题(突然断电,写了一半),这种情况下,yes会log并继续,而no会直接恢复失败。

https://ithelp.ithome.com.tw/upload/images/20210924/20111658AnJ96t7CYy.png

# 预设
aof-load-truncated yes
  • aof-use-rdb-preamble

在开啓了这个混合模式功能之後,aof rewrite产生的档案将同时包含rdb格式的内容和aof格式的内容,其中rdb格式的内容用於记录已有的数据,而aof格式的内存则用於记录最近发生了变化的数据,这样Redis Server就可以同时兼有rdb持久化和aof持久化的优点(既能够快速地生成重写文件,也能够在出现问题时,快速地载入数据)。

https://ithelp.ithome.com.tw/upload/images/20210924/20111658s2pMO92gMX.png

# 预设
aof-use-rdb-preamble yes

<<:  Day9 初探CFS 下

>>:  【Day 9】Replica 之间的一致性

NIST SP 800-88 R1媒体消毒准则(Guidelines for Media Sanitization)

NIST SP 800-88 R1引入了三种消毒方法:清除(clear),清除(Purge)和销毁(...

[前端暴龙机,Vue2.x 进化 Vue3 ] Day17.父子组件的沟通-$emit

在前一篇中,我们已经了解父组件向子组件传递资料了,接着来认识子组件向父组件的沟通吧 子组件向父组件沟...

使用 Python 实作网路爬虫 part 3

实际操作 了解 requests 与 BeautifulSoup 的功能後,我们来进行整合吧!接下来...

【D26】模组化#1:取股票资料

前言 在取用个资料的时候,都是一个一个执行,分散各地,为了方便需要整合;讯号灯也是如此,都放在个别的...

Ceph and OpenStack - Best Practices Part I

Ceph and OpenStack 现在已经是 IaaS 中成双成对的一个组合。根据 2017 年...