Redis 常用配置项
设置redis以守护进程方式运行
daemonize no
指定端口号
port 6379
设置tcp的backlog
tcp-backlog 511
**注意: **
backlog 是一个连接队列
backlog队列总和 = 未完成三次握手队列 + 已完成三次握手队列
在高并发环境下需要一个高的backlog值来避免慢客户端连接问题
Linux内核会将这个值减小到/proc/sys/net/core/somaxconn 的值,所以需要确认增大somaxconn和tcp_max_syn_backlog两个值来达到想要的
绑定的主机地址
bind 127.0.0.1
客户端闲置时间关闭连接 单位 秒 设置为 0 则永不关闭
timeout 300
检测客户端网络中断时间间隔 单位 秒 设置为 0 则永不检测 建议设置 60
tcp-keepalive 0
日志级别 debug verbose notice warning 默认值 verbose(windows 安装时 查看为 notice)
loglevel notice
日志记录方式 默认为标准输出 如果配置 redis 为守护进程方式运行, 在这里有配置为日志记录方式为标准输出 则日志将会发送给 /dev/null
logfile stdout
设置数据库数量 默认值 16 默认当前数据库 0 可以使用 select 指定数据库id
databases 16
指定在多长时间内 有多少次更新操作 就将数据同步到数据文件 多条件时 同时成立
save
示例 save 300 10 300秒内有10个更改就将数据同步到数据文件
指定存储到数据库时是否压缩 默认 yes redis 采用 LZF压缩
rdbcompssion yes
指定本地数据库文件名
dbfilename dump.rdb
本地数据库存放地址
dir ./
设置本机 slave 服务时 设置master服务的IP地址及端口号,在redis启动时,自动从master进行数据同步
slaveof
master服务设置密码保护时 salve服务连接master 密码
masterauth
设置redis连接密码 如果配置连接密码 客户端连接时 需要通过 auth提供密码 默认关闭
requirepass foobared
设置同一时间最大客户端连接数
maxclients 128
**注意: **
默认无限制
当客户端连接数达到限制时 redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息
指定redis最大的内存限制
maxmemory
**注意: **
redis 启动时会将数据加载到内存中
达到最大内存后,redis在尝试清除已到期或即将到期的KEY,当方法处理后,仍然达到最大内存设置,将无法再进行写入操作,但仍可以进行读取操作
Redis 新的VM机制 会把key存放内存,value存放在 swap区
缓存过期策略<很重要>
volatile-lru 使用LRU算法(最近最少使用) 只对设置了过期时间的key
volatile-random 随机移除 只对设置了过期时间的key
volarile-ttl 移除ttl值最小以即最近要过期的key
allkeys-lru 使用LRU算法 针对所有
allkeys-random 随机移除 同上
noeviction 永不过期 针对写操作 会返回错误信息
maxmemory-policy noeviction
是否在每次默认操作后进行日志记录
redis 在默认情况下是一步的将数据写入磁盘,如果不开启 可能会在断电时导致一段时间内数据丢失
因为redis本身同步数据文件是按上面save条件来同步的,所有的数据会在一段时间内置存在内存中
appendonly no
指定更新日志文件名
appendfilename appendonly.aof
指定更新日志条件
no 等操作系统进行数据缓存到磁盘(快)
always 每次更新操作后手动调用fsync()将数据写到磁盘(慢 安全)
everysec 每秒同步一次(折中 默认值)
appendfsync everysec
是否启用虚拟内存机制
默认值 no
VM机制是将数据分页存放
redis将访问量较小的页 及冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中
vm-enabled no
虚拟内存路径 不可多个redis实例共享
wm-swap-file /temp/redis.swap
将所有大于 vm-max-memory 的数据存入虚拟内存
无论 vm-max-memory设置的多小,所有索引数据都是内存存储的(redis的索引数据就是keys)
当vm-max-memory设置为0时,其实就是讲所有value都存放在磁盘 默认值为0
vm-max-memory 0