• 它在哪
  • Units单位
  • INCLUDES包含
  • GENERAL通用
  • SNAPSHOTTING快照
  • REPLICATION复制
  • SECURITY安全
  • LIMITS限制
  • APPEND ONLY MODE追加
  • 常见配置redis.conf介绍

它在哪

redis 配置文件default on redis 配置文件解析_数据

Units单位

redis 配置文件default on redis 配置文件解析_redis_02

1 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit
2 对大小写不敏感

INCLUDES包含

redis 配置文件default on redis 配置文件解析_数据_03


和我们的Struts2配置文件类似,可以通过includes包含,redis.conf可以作为总闸,包含其他

GENERAL通用

redis 配置文件default on redis 配置文件解析_数据_04

  • Daemonize:默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把配置文件里daemonize改为yes。
    当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面

redis 配置文件default on redis 配置文件解析_客户端_05

  • Pidfile:当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/run/redis.pid 文件里面,但是你可以在这里自己制定它的文件位置。
  • Port:监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。

redis 配置文件default on redis 配置文件解析_数据_06


Tcp-backlog:TCP 监听的最大容纳数量

设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列+已完成三次握手队列。

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

redis 配置文件default on redis 配置文件解析_客户端_07

  • Bind:默认情况下,redis 在 server 上所有有效的网络接口上监听客户端连接 你如果只想让它在一个网络接口上监听,那你就绑定一个IP或者多个IP。

    Timeout:指定在一个 client 空闲多少秒之后关闭连接(0 就是不管它)
    例如:长时间把QQ关机,服务器就会认为这个会话可以是暂时中断的会话,减轻服务器负担

redis 配置文件default on redis 配置文件解析_数据_08

  • Tcp-keeppalive:tcp 心跳包 如果设置为非零,则在与客户端缺乏通讯的时候使用 SO_KEEPALIVE 发送 tcp acks 给客户端。 单位为秒,如果设置成0,则不会进行Keepalive检测,建议设置成60
    举例:飞机在飞行过程中,机场每个多长时间都要与飞机进行沟通,看看机长是否睡着了,可以证明当前网络通讯状态是否良好。

redis 配置文件default on redis 配置文件解析_客户端_09

  • Loglevel:定义日志级别 其值可以是如下所示:
  • debug (适用于开发或测试阶段)
  • verbose (很多很少用到的信息,但不想debug级别那么混乱)
  • notice (适用于生产环境)
  • warning (仅仅一些重要的消息被记录)

redis 配置文件default on redis 配置文件解析_客户端_10


logfile:指定日志文件的位置

redis 配置文件default on redis 配置文件解析_redis_11

  • Syslog-enabled:要想把日志记录到Syslog系统日志,就把它改成 yes, 也可以可选择性的更新其他的syslog 参数以达到你的要求

redis 配置文件default on redis 配置文件解析_客户端_12

  • Databases:设置数据库的数目,默认数据库是 DB 0,你可以在每个连接上使用 select 命令选择一个不同的数据库,但是 dbid 必须是一个介于 0 到 databasees - 1 之间的值

SNAPSHOTTING快照

redis 配置文件default on redis 配置文件解析_redis_13


save <多长时间内(秒)> <改动的次数> 【多长时间内改动了多少次,那么就保存】

redis 配置文件default on redis 配置文件解析_客户端_14


stop-writes-on-bgsave-error :默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作

这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘,否则就会没人注意到灾难的发生

如果配置成no,表示你不在乎数据不一致或者有其他手段发现和控制

redis 配置文件default on redis 配置文件解析_数据_15


rdbcompression:对于存储到磁盘中的快照,可以设置是否进行压缩存储,如果是的话,Redis会采用LZF算法进行压缩,如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能

默认为:yes

redis 配置文件default on redis 配置文件解析_客户端_16


rdbchecksum:是否校验rdb文件

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

redis 配置文件default on redis 配置文件解析_redis_17


dbfilename:设置 dump 的文件位置

redis 配置文件default on redis 配置文件解析_客户端_18


dir:工作目录

例如:上面的 dbfilename 只指定了文件名,但是它会写入到这个目录下。这个配置项一定是个目录,而不能是文件名。

REPLICATION复制

SECURITY安全

redis 配置文件default on redis 配置文件解析_客户端_19

redis 配置文件default on redis 配置文件解析_redis_20

LIMITS限制

redis 配置文件default on redis 配置文件解析_数据_21


Maxclients:最大连接数

一旦达到最大限制,redis 将关闭所有的新连接,并发送一个 max number of clients reached 的错误。

redis 配置文件default on redis 配置文件解析_数据_22


Maxmemory:最大使用内存

redis 配置文件default on redis 配置文件解析_客户端_23


Maxmemory-policy:当内存满了之后,挑出那些无用或者过期的数据

缓存过期策略:有五种

  • volatile-lru -> 使用 LRU 算法移除,只对设置了过期时间的 key 【lru:最近最少使用】
  • allkeys-lru -> 根据 LRU 算法移除所有的 key
  • volatile-random -> 在过期集合中移除随机的key,只对设置了过期时间的key
  • allkeys-random -> 移除随机的key
  • volatile-ttl -> 移除那些TTL值最小的key,即那些最近要过期的key
  • noeviction -> 不让任何 key 过期,只是给写入操作返回一个错误

redis 配置文件default on redis 配置文件解析_数据_24


Maxmemory-samples:设置样本的数量,LRU算法和最小TTL算法并非是精准的算法,而是估算值,所以你可以设置样本的大小,Redis默认会检查这么多个key并选择其中LRU的那个

APPEND ONLY MODE追加

redis 配置文件default on redis 配置文件解析_redis_25


appendonly:打开AOF,只要将 appendonly 后边的 no 改为 yes

redis 配置文件default on redis 配置文件解析_客户端_26


appendfilename:持久化 AOF 的写操作代码的存放位置,相当于 RDB 的 dump.rdb

redis 配置文件default on redis 配置文件解析_数据_27


appendfsync:AOF持续化的方式,一共三种


  • Always:同步持久化,每次发生数据变更会被立即记录到磁盘,性能较差,但数据完整性比较好
  • Eversec:出厂默认推荐,异步操作,每秒记录,如果一秒内宕机,有数据丢失
  • No:从不同步

redis 配置文件default on redis 配置文件解析_redis_28


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

redis 配置文件default on redis 配置文件解析_客户端_29


auto-aof-rewrite-percentage**:设置重写的基准值**

auto-aof-rewrite-min-size:设置重写的基准值

常见配置redis.conf介绍

redis 配置文件default on redis 配置文件解析_客户端_30

redis 配置文件default on redis 配置文件解析_数据_31

redis 配置文件default on redis 配置文件解析_客户端_32

redis 配置文件default on redis 配置文件解析_redis_33

redis 配置文件default on redis 配置文件解析_redis_34

redis 配置文件default on redis 配置文件解析_redis_35