redis版本:redis-5.0.5.tar.gz
INCLUDES(引入文件)
include
# 可以创建多个.conf文件,在这里引入
include .\path\to\local.conf
include c:\path\to\other.conf
MODULES(模块)
loadmodule
loadmodule /path/to/my_module.so
loadmodule /path/to/other_module.so
NETWORK(网络配置)
bind
# 一个主机多网卡对应多IP
# 默认bind 127.0.0.1,只能本机连接
# 不能绑定本机之外的IP,会导致启动失败
# 如果注释掉bind 或者 bind 0.0.0.0,则任何IP都可以连接redis
bind 127.0.0.1
protected-mode yes
# 默认yes
# 保护模式是一层安全保护,避免互联网上打开的Redis实例被访问和利用
# 保护模式开启必须满足三个条件,开启后只有本机才可以访问redis,三个条件任何一个不满足,都不会开启保护机制
# 1. protected-mode yes //开启状态
# 2. 没有bind 配置
# 3. 没有设置密码
protected-mode yes
port
# 默认6379
port 6379
timeout
# 默认0,表示关闭该功能
timeout 0
GENERAL(常规配置)
daemonize
# yes-启用,默认是no,即不以守护进程方式运行
# windows不支持启用,若windows设置yes,则redis启动报错:NOT SUPPORTED ON WINDOWS daemonize no
daemonize yes
databases
# 默认为16,dbId从0开始,默认使用db0数据库
databases 16
pidfile
pidfile /var/run/redis_6379.pid
SNAPSHOTTING(RDB持久化配置)
save
- 多少秒内key值变化,则执行bgsave
- 可设置多个save,多个save只要满足一个就会执行bgsave
save <seconds> <changes>
save 900 1
save 300 10
save 60 10000
# 如需关闭RDB持久化的自动触发,注释掉所有的save,并打开save 空字符串,如下
save ""
stop-writes-on-bgsave-error
当启用了RDB且最后一次后台保存数据失败,Redis是否停止接收数据
# 默认yes
# 这会让用户意识到数据没有正确持久化到磁盘上,否则没有人会注意到灾难(disaster)发生了。如果Redis重启了,那么又可以重新开始接收数据了
stop-writes-on-bgsave-error yes
rdbcompression
# 默认yes
# Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
rdbcompression yes
rdbchecksum
在存储快照后,是否让redis使用CRC64算法来进行数据校验 校验会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能
# 默认yes
rdbchecksum yes
dbfilename
# 默认dump.rdb
dbfilename dump.rdb
dir
# 默认./,当前目录,也就是redis的安装目录
dir ./
REPLICATION(redis的主从复制模式配置)
replicaof
replicaof <masterip> <masterport>
replicaof 127.0.0.1 6379
masterauth
masterauth <master-password>
masterauth rafa
replica-serve-stale-data
当slave与master的失去连接时,或者当同步数据正在进行时,slave的行为有两种不同的方式进行操作
# 默认yes
# yes:slave继续响应客户端的读请求,可能是过期的数据;如果这是第一次同步,则可能是空数据
# no:slave会抛出错误"SYNC with master in progress"(正在与master同步数据),来处理各种请求,除了 INFO 和 SLAVEOF 命令
replica-serve-stale-data yes
replica-read-only
# 默认yes
# no:slave接受写操作,这样一般会出现数据不一致的情况
# 从redis 2.6开始,默认slave节点都是只读的
replica-read-only yes
repl-diskless-sync
# 默认no,磁盘方式(redis推荐使用该方式)
repl-diskless-sync no
SECURITY(安全配置)
requirepass
# 默认关闭
requirepass rafa
CLIENTS
maxclients
# 默认10000
# 如果达到限制,redis将关闭所有新连接,并抛出max number of clients reached(已达到最大客户端数)
maxclients 10000
MEMORY MANAGEMENT(内存管理)
maxmemory
# 64位系统:设置为0或者不设置则表示无限制
# 32位系统:最多使用3GB内存,32位的机器最大只支持4GB的内存,而系统本身就需要一定的内存资源来支持运行,所以限制最大3GB的可用内存
maxmemory <bytes>
maxmemory 300mb
maxmemory-policy
最大内存淘汰策略,当redis达到最大内存时,redis将如何选择要删除的内容
# noeviction:不删除策略,直接返回错误(DEL请求和部分特殊请求除外),默认
# volatile-lru:从设置了过期时间的key中使用LRU算法(less recently used最近较少使用)删除
# allkeys-lru:从所有key中使用LRU算法进行删除
# volatile-random:从设置了过期时间的key中随机删除
# allkeys-random:从所有key中随机删除
# volatile-ttl:在设置了过期时间的key中,根据TTL算法(time to live过期时间最短)删除
# 当使用volatile-lru、volatile-random、volatile-ttl这三种时,如果没有key可以被淘汰,则和noeviction一样返回错误
maxmemory-policy noeviction
maxmemory-samples
最大内存的样本数量,影响上面的淘汰策略的LRU、TTL算法 的 速度、准确性
# 上面的淘汰策略的LRU、TTL算法不是精确算法,而是近似算法(为了节省内存)
# 默认5,表示LRU/TTL算法取出5个的key,然后从中选择一个满足策略的key
# 5:会产生足够好的结果
# 10:非常接近真正的LRU,但需要更多的CPU
# 3:很快,但不是很准确
maxmemory-samples 5
LAZY FREEING
APPEND ONLY MODE(AOF持久化配置)
appendonly
# 默认no
appendonly no
appendfilename
# 默认"appendonly.aof"
appendfilename "appendonly.aof"
appendfsync
# everysec,每秒执行一次,异步。默认
# always: 同步持久化,性能较差,数据完整性好
# no: 不同步
appendfsync everysec
no-appendfsync-on-rewrite
文件同步策略设置为always、everysec时,后台的存储进程会执行大量的磁盘I/O操作,在某些Linux配置中,Redis可能会在fsync()调用上阻塞太长时间。请注意,目前还没有对此进行修复,因为即使在不同的线程中执行fsync也会阻止我们的同步write(2)调用 为了缓解这个问题,可以使用以下选项来防止在BGSAVE或BGREWRITEOF进行时在主进程中调用fsync() 这意味着,当另一个子级正在保存时,Redis的持久性与“appendfsync none”相同。实际上,这意味着在最坏的情况下(使用默认的Linux设置),可能会丢失长达30秒的日志 如果您有延迟问题,请将此选项设置为yes,否则保留为从耐久性的角度来看,no是最安全的选择
# 默认no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage
# 默认100
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size
# 默认64mb
auto-aof-rewrite-min-size 64mb
aof-load-truncated
redis启动并加载AOF时,发现AOF文件的末尾被截断了,redis是否加载被截断的AOF文件
# yes:末尾被截断的AOF文件将会被加载,并打印日志通知用户。默认
# no:服务器将报错并拒绝启动,这时用户需要使用redis-check-aof工具修复AOF文件,再重新启动
aof-load-truncated yes
aof-use-rdb-preamble
# 默认yes
aof-use-rdb-preamble yes
LUA SCRIPTING(LUA脚本)
REDIS CLUSTER(redis集群模式配置)
cluster-enabled
# 默认yes
cluster-enabled yes
cluster-config-file
cluster-config-file nodes-6379.conf
CLUSTER DOCKER/NAT support(集群docker/NAT支持)
SLOW LOG(慢查询日志)
LATENCY MONITOR(延迟监视器)
EVENT NOTIFICATION(事件通知)
ADVANCED CONFIG(高级配置)
ACTIVE DEFRAGMENTATION(主动碎片整理)