Redis教程

Redis(二)配置文件、

本文主要是介绍Redis(二)配置文件、,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Units#单位

计量单位说明:只支持 bytes,不支持 bit;对大小写不敏感。

Include#包含

指定包含其他的配置文件,可以在同一主机上多个 Redis 实例之间使用同一份公共的配置文件,而同时各个实例又拥有自己的特定配置文件。

网络相关

bind#

  • 默认情况 bind 127.0.0.1 只能接受本机的访问请求
  • 不配置的情况下,无限制接受任何 ip 地址的访问
  • 生产环境肯定要写应用服务器的地址
  • 如果开启了 protected-mode,就算没有设定 bind ip 且没有设密码的情况下,Redis 依旧只允许接受本机的响应,所以两个都要搞

protected-mode

将本机访问保护模式设置no

port#

指定 Redis 监听端口,默认 6379。

tcp-backlog#

可以理解是一个请求到达后至到接受进程处理前的队列,511 代表最大请求个数。

tcp-backlog 其实是一个连接队列:backlog 队列总和 = 未完成三次握手队列 + 已经完成三次握手队列

在高并发环境下你需要一个高 backlog 值来避免慢客户端连接问题。注意 Linux 内核会将这个值减小到 /proc/sys/net/core/somaxconn 的值,所以需要确认增大 somaxconn 和 tcp_max_syn_backing 两个值来达到想要的效果。

timeout#

timeout:一个空闲的客户端维持多少秒会关闭,0 为永不关闭。

tcp-keepalive#

对访问客户端的一种心跳检测,每个 n 秒检测一次。如果设置为0,则不会进行 Keepalive 检测。官方推荐设为 60 秒。

Genernal#通用

daemonize#

以守护进程方式启动(是否为后台进程)

pidfile#

当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件中,可以通过该配置指定存放 pid 文件的位置,每个实例会产生一个不同的 pid 文件。

log level

指定日志记录级别。4 个级别根据使用阶段来选择,生产环境选择 notice 或者 warning。

logfile

日志记录方式,默认为标准输出;如果配置 Redis 为守护进程方式运行,而这里又配置日志记录方式为标准输出,则日志将会发送给 /dev/null

syslog-*

databases

设定库的数量

默认16,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id

snapshotting

RDB 是整个内存压缩过的 Snapshot,RDB 的数据结构可以配置复合的快照触发条件。

save

指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合。

Redis 默认配置文件中提供了 3 个条件:

如果想禁用 RDB 持久化策略,只要不设置任何 save 指令,或者给 save 传入一个空字符串参数也行。
如果在客户端使用 save 指令,会立即备份(就算 Redis 当前并没有满足备份策略)。

stop-writes-on-bgsave-error#

默认是 yes;如果配置成 no,表示不在乎数据不一致或者有其他的手段发现和控制。

rdbcompression#

对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,Redis 会采用 LZF 算法进行压缩。如果不想消耗 CPU 来进行压缩的话,可以设置为 no 关闭此功能,但会导致数据文件变得巨大。

rdbchecksum#

在存储快照后,还可以让 Redis 使用 CRC64 算法来进行数据校验,但是这样做会增大大约 10% 的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。

dbfilename#

分别代表:指定本地数据存放文件名、指定本地数据库存放目录

replication#

slaveof#

设置本机为 slave 服务时,设置 master 服务的 IP地址及端口。在 Redis 启动时,它会自动从 master 进行数据同步。

masterauth#

当 master 服务设置了密码保护时,slave 服务连接 master 的密码。

slave-read-only#

security#

设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH <password> 命令提供密码,默认关闭。

limit#

maxclient#

设置同一时间最大客户端连接数。当客户端连接数达到限制时,Redis 会关闭新的连接并向客户端返回 max numbeR of clients reached 错误信息。如果设置 maxclients 为 0,则表示不做限制。

maxmemory#

设置 Redis 可以使用的最大内存限制。

一旦到达内存使用上限,Redis 将会试图移除内部数据,移除规则可以通过 maxmemory-policy 来指定。如果 Redis 无法根据移除规则来移除内存中的数据或者设置了“不允许移除”,那么 Redis 则会针对那些需要申请内存的指令返回错误信息,比如 SET、LPUSH 等。

maxmemory-policy#

maxmemory-samples#

设置样本数量,LRU 算法和最小 TTL 算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小。一般设置 3 到 7 的数字,数值越小样本越不准确,但是性能消耗也越小。

append only mode#

appendonly#

指定是否在每次更新操作后进行日志记录,Redis 在默认情况下是异步的把数据写入磁盘。如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 Redis 本身同步数据文件是按上面 save 条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为 no。

appendfilename#

appendfsync#

指示更新日志的条件,共有 3 个可选值:

  • always:同步持久化,每次发生数据变更会立即记录到磁盘,性能较差但数据完整性比较好(慢、安全)
  • everysec:出厂默认推荐,异步操作,每秒记录;如果一秒内宕机,有数据丢失(折中,默认值)
  • no:等 OS 进行数据缓存同步到磁盘(快)

about rewrite#

no-appendfsync-onrewrite

重写时是否可以运行 appendfsync,用默认 no 即可,保证数据安全性。

auto-aof-rewrite-*

Redis 会记录上次重写时的 AOF 大小,默认配置是当 AOF 文件大小是上次 rewrite 后大小的一倍且文件大于 64M 时触发。

others#

分类: Redis
这篇关于Redis(二)配置文件、的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!