以下是比较重要的配置信息:

单位

1.units单位不区分大小写:

img点击并拖拽以移动

包含 INCLUDES

img点击并拖拽以移动

# include /path/to/local.conf
# include /path/to/other.conf

可以通过上述语法包含引入其他配置文件,可以同时引入多个。

网络 NETWORK

bind 127.0.0.1 #绑定的ip,表示只有127.0.0.1(本机可以访问redis),也可以使用通配符* ,表示所有ip都可以访问
protected-mode no #保护模式
port 6379     #默认端口号

通用配置 GENERAL

daemonize yes  #默认是no,yes为以守护进程(后天运行)的方式运行

pidfile /var/run/redis_6379.pid #如果以后台方式运行,我们就要指定一个pid文件


# Specify the server verbosity level.     
# This can be one of:
# debug (a lot of information, useful for development/testing)  一般用于测试和开发阶段
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged) 关键的信息才会打印
loglevel notice #日志级别 可以是:debug、verbose、notice、warning
logfile ""  #日志的文件位置名,如果为空则是标准的输出
databases 16 #默认的数据库数量

快照 SNAPSHOTTING

redis是一个基于内存的数据库,如果不持久化,数据会丢(断电即失)

持久化:在规定的时间内,执行了多少次操作,才会持久化到文件(.rdb和.aof文件)

#持久化规则

save 900 1  #如果900秒内至少有1个key进行了修改,我们就进行持久化操作
save 300 10  #如果300秒内至少有10个key进行了修改,我们就进行持久化操作
save 60 10000  #如果60秒内至少有10000个key进行了修改,我们就进行持久化操作

stop-writes-on-bgsave-error yes#持久化如果出错是否还继续工作,默认开启
rdbcompression yes# 是否压缩rdb文件,默认开启,需要消耗CPU的一些资源
rdbchecksum yes #保存rdb文件时,进行错误的检查校验
dir ./        #持久化文件的保存目录,默认是当前目录

安全 SECURITY

requirepass 123456   #redis密码,默认没有密码

限制 CLIENTS MEMORY MANAGEMENT

maxclients 10000 #redis最大客户端连接数量
maxmemory <bytes> #指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis
                  #会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进                   #行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value                     #会存放在 swap 区
maxmemory-policy noeviction #内存达到上限后的处理策略   
     # volatile-lru ->从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
     # allkeys-lru -> 删除lru算法的key
     # volatile-lfu ->从已设置过期时间的数据集(server.db[i].expires)中挑选最不经常使用的数据淘汰 
     # allkeys-lfu ->删除lfu算法的key
     # volatile-random -> 随机删除即将过期的key
     # allkeys-random ->  随机删除
     # volatile-ttl -> 
     # noeviction -> 永不过期返回错误

aof 配置 APPEND ONLY MODE

appendonly no #默认不开启aof,即默认使用rdb进行持久化,因为在大多数情况下,rdb完全够用
appendfilename "appendonly.aof" #aof持久化的文件的名

# appendfsync always  每次修改都会sync,消耗性能
appendfsync everysec #默认,每秒执行一次 sync,可能会丢失这一秒的数据
# appendfsync no      不实行sync,这个时候操作系统自己同步数据,速度很快

其他:

vm-enabled no 指定是否启用虚拟内存机制,默认值为 no,简单的介绍一下,VM 机制将数据分页存放,由 Redis 将访问量较少的页即冷数据 swap 到磁盘上,访问多的页面由磁盘自动换出到内存中(在后面的文章我会仔细分析 Redis 的 VM 机制)
vm-swap-file /tmp/redis.swap 虚拟内存文件路径,默认值为 /tmp/redis.swap,不可多个 Redis 实例共享
vm-max-memory 0 将所有大于 vm-max-memory 的数据存入虚拟内存,无论 vm-max-memory 设置多小,所有索引数据都是内存存储的(Redis 的索引数据 就是 keys),也就是说,当 vm-max-memory 设置为 0 的时候,其实是所有 value 都存在于磁盘。默认值为 0
vm-page-size 32 Redis swap 文件分成了很多的 page,一个对象可以保存在多个 page 上面,但一个 page 上不能被多个对象共享,vm-page-size 是要根据存储的 数据大小来设定的,作者建议如果存储很多小对象,page 大小最好设置为 32 或者 64bytes;如果存储很大大对象,则可以使用更大的 page,如果不确定,就使用默认值
vm-pages 134217728 设置 swap 文件中的 page 数量,由于页表(一种表示页面空闲或使用的 bitmap)是在放在内存中的,,在磁盘上每 8 个 pages 将消耗 1byte 的内存。
vm-max-threads 4 设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的,可能会造成比较长时间的延迟。默认值为4
glueoutputbuf yes 设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启
hash-max-zipmap-entries 64 hash-max-zipmap-value 512 指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法
activerehashing yes 指定是否激活重置哈希,默认为开启(后面在介绍 Redis 的哈希算法时具体介绍)
include /path/to/local.conf 指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件