[Linux][Redis][02]Config

# redis 配置文件示例

 

# 当你需要为某个配置项指定内存大小的时候,必须要带上单位,

# 通常的格式就是 1k 5gb 4m 等:

#

# 1k  => 1000 bytes

# 1kb => 1024 bytes

# 1m  => 1000000 bytes

# 1mb => 1024*1024 bytes

# 1g  => 1000000000 bytes

# 1gb => 1024*1024*1024 bytes

#

# 单位是不区分大小写的,你写 1K 5GB 4M 也行

 

# 假如说你有一个可用于所有的 redis server 的标准配置模板,

# 但针对某些 server 又需要一些个性化的设置,

# 你可以使用 include 来包含一些其他的配置文件,这对你来说是非常有用的。

#

# 但是要注意哦,include 是不能被 config rewrite 命令改写的

# 由于 redis 总是以最后的加工线作为一个配置指令值,所以你最好是把 include 放在这个文件的最前面,

# 以避免在运行时覆盖配置的改变,相反,你就把它放在后面

#

# include /path/to/local.conf

# include /path/to/other.conf

 

# 默认情况下,redis 在 server 上所有有效的网络接口上监听客户端连接。

# 你如果只想让它在一个网络接口上监听,那你就绑定一个IP或者多个IP。

#

# 示例,多个IP用空格隔开:

#

# bind 192.168.1.100 10.0.0.1

# bind 127.0.0.1

bind x.x.x.x  

 

# 保护模式是安全保护的一层,为了避免Redis实例在Internet上暴露并且被恶意使用

# 保护模式在一下情况下开启

#

# 1)服务器没有缺血的使用bind指令制定一个确切的IP地址

# 2)没有密码配置

#

# 服务器只能接受客户端使用IPV4,IPV6,loopback,Unix套接字的地址

#

# 默认情况下,保护模式是开启的,如果你能确定客户端连接在没有密码配置的情况下连接,

# 或者使用bind指令明确的制定了借口的地址,就可以关闭此选项

#

protected-mode no

 

# 监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。

port 6379

 

# TCP 监听的最大容纳数量

#

# 在高并发的环境下,你需要把这个值调高以避免客户端连接缓慢的问题。

# Linux 内核会一声不响的把这个值缩小成 /proc/sys/net/core/somaxconn 对应的值,

# 所以你要修改这两个值才能达到你的预期 

tcp-backlog 4096

 

# Unix 套接字

# 指定确切的路径,监听进入的连接,这个选项没有默认值,所以,Redis在配置的情况下,是不会监听的

 

# 指定在一个 client 空闲多少秒之后关闭连接(0 就是不管它)

timeout 300

 

# tcp 心跳包。

#

# 如果设置为非零,则在与客户端缺乏通讯的时候使用 SO_KEEPALIVE 发送 tcp acks 给客户端。

# 这个之所有有用,主要由两个原因:

#

# 1) 防止死的 peers

# 2) Take the connection alive from the point of view of network

#    equipment in the middle.

tcp-keepalive 60

 

# 默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。

# 当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面。

daemonize yes

 

# 可以通过upstart和systemd管理Redis守护进程

supervised systemd

 

# 当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/run/redis.pid 文件里面,

# 但是你可以在这里自己制定它的文件位置。

pidfile /var/run/redis_6379.pid

 

# 定义日志级别。

# 可以是下面的这些值:

# debug (适用于开发或测试阶段)

# verbose (many rarely useful info, but not a mess like the debug level)

# notice (适用于生产环境)

# warning (仅仅一些重要的消息被记录)

loglevel notice

 

logfile "/var/log/redis/redis.log"

 

# 要想把日志记录到系统日志,就把它改成 yes,

# 也可以可选择性的更新其他的syslog 参数以达到你的要求

 

# 设置 syslog 的 identity

 

# 设置 syslog 的 facility,必须是 USER 或者是 LOCAL0-LOCAL7 之间的值

 

# 设置数据库的数目。

# 默认数据库是 DB 0,你可以在每个连接上使用 select <dbid> 命令选择一个不同的数据库,

# 但是 dbid 必须是一个介于 0 到 databasees - 1 之间的值

databases 16

 

# 存 DB 到磁盘:

#

#   格式:save <间隔时间(秒)> <写入次数>

#

#   根据给定的时间间隔和写入次数将数据保存到磁盘

#

#   下面的例子的意思是:

#   900 秒后如果至少有 1 个 key 的值变化,则保存

#   300 秒后如果至少有 10 个 key 的值变化,则保存

#   60 秒后如果至少有 10000 个 key 的值变化,则保存

#

#   注意:你可以注释掉所有的 save 行来停用保存功能。

#   也可以直接一个空字符串来实现停用:

#   save ""

save 900 1

save 300 10

save 60 10000

 

# 默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,

# 这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘,

# 否则就会没人注意到灾难的发生。

#

# 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。

#

# 然而你要是安装了靠谱的监控,你可能不希望 redis 这样做,那你就改成 no

stop-writes-on-bgsave-error yes

 

# 是否在 dump .rdb 数据库的时候使用 LZF 压缩字符串

# 默认都设为 yes

# 如果你希望保存子进程节省点 cpu ,你就设置它为 no ,

# 不过这个数据集可能就会比较大

rdbcompression yes

 

# 自从版本5 的RDB crc64校验被放置在文件的末尾 

#这使得格式更复杂,但性能有所提高 

#命中率( 10%左右)时,保存和加载数据库文件,所以您可以禁用它获得最大性能 

#当校验关闭时 RDB便建立一个0 字节的文件,告诉加载代码跳过检查

rdbchecksum yes

 

# 设置 dump 的文件位置

dbfilename dump.rdb

 

# 工作目录

# 例如上面的 dbfilename 只指定了文件名,

# 但是它会写入到这个目录下。这个配置项一定是个目录,而不能是文件名

 

# 主从复制。使用 slaveof 来让一个 redis 实例成为另一个reids 实例的副本。

# 注意这个只需要在 slave 上配置。

 

# 如果 master 需要密码认证,就在这里设置

 

# 当一个 slave 与 master 失去联系,或者复制正在进行的时候,

# slave 可能会有两种表现:

#

# 1) 如果为 yes ,slave 仍然会应答客户端请求,但返回的数据可能是过时,

#    或者数据可能是空的在第一次同步的时候

#

# 2) 如果为 no ,在你执行除了 info he salveof 之外的其他命令时,

#    slave 都将返回一个 "SYNC with master in progress" 的错误,

slave-serve-stale-data yes

 

# 你可以配置一个 slave 实体是否接受写入操作。

# 通过写入操作来存储一些短暂的数据对于一个 slave 实例来说可能是有用的,

# 因为相对从 master 重新同步数而言,据数据写入到 slave 会更容易被删除。

# 但是如果客户端因为一个错误的配置写入,也可能会导致一些问题。

#

# 从 redis 2.6 版起,默认 slaves 都是只读的。

#

# 注意:只读的 slaves 没有被设计成在 internet 上暴露给不受信任的客户端。

# 它仅仅是一个针对误用实例的一个保护层。

slave-read-only yes

 

repl-diskless-sync no

repl-diskless-sync-delay 5

 

# Slaves 在一个预定义的时间间隔内发送 ping 命令到 server 。

# 你可以改变这个时间间隔。默认为 60 秒。

 

repl-disable-tcp-nodelay no

 

# 设置主从复制容量大小。这个 backlog 是一个用来在 slaves 被断开连接时

# 存放 slave 数据的 buffer,所以当一个 slave 想要重新连接,通常不希望全部重新同步,

# 只是部分同步就够了,仅仅传递 slave 在断开连接时丢失的这部分数据。

# 这个值越大,salve 可以断开连接的时间就越长

 

# 在某些时候,master 不再连接 slaves,backlog 将被释放。

# 如果设置为 0 ,意味着绝不释放 backlog 。

 

# 当 master 不能正常工作的时候,Redis Sentinel 会从 slaves 中选出一个新的 master,

# 这个值越小,就越会被优先选中,但是如果是 0 , 那是意味着这个 slave 不可能被选中。

#

# 默认优先级为 100。

slave-priority 100

 

# 设置认证密码

 

# 一旦达到最大限制,redis 将关闭所有的新连接

# 并发送一个‘max number of clients reached’的错误

 

# 如果你设置了这个值,当缓存的数据容量达到这个值, redis 将根据你选择的

# eviction 策略来移除一些 keys。

#

# 如果 redis 不能根据策略移除 keys ,或者是策略被设置为 ‘noeviction’,

# redis 将开始响应错误给命令,如 set,lpush 等等,

# 并继续响应只读的命令,如 get

# 最大使用内存

 

# 最大内存策略,你有 5 个选择

 

appendonly no

appendfilename "appendonly.aof"

appendfsync everysec

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

lua-time-limit 5000

slowlog-log-slower-than 10000

slowlog-max-len 128

latency-monitor-threshold 0

notify-keyspace-events ""

hash-max-ziplist-entries 512

hash-max-ziplist-value 64

list-max-ziplist-size 2

list-compress-depth 0

set-max-intset-entries 512

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

activerehashing yes

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit slave 256mb 64mb 60

client-output-buffer-limit pubsub 32mb 8mb 60

hz 10

aof-rewrite-incremental-fsync yes

原文地址:https://www.cnblogs.com/wuzhenzhou/p/6909785.html