redis中redis.conf配置文件解析

时间:2021-04-06 20:33:33

redis中redis.conf配置文件解析

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

3:daemonize no:Redis默认不是以守护进程的方式进行 可以通过该配置修改 使用yes启用守护进程

4. 绑定的主机地址  bind 127.0.0.1

5:timeout 300 (.当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能)

6:databases 16( 设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id)

redis中redis.conf配置文件解析

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


redis中redis.conf配置文件解析

GENERAl通用 

     port端口号

     tcp-backlog:设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列 + 已经完成三次握手队列。在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。注意Linux内核会将这个值减到/proc/sys/net/core/somaxconn的值,所以需要确认增大somaxconn和tcp_max_syn_backlog两个值来达到想要的效果

    tcp-keepalive:单位为秒,如果设置为0,则不会进行Keepalive检测,建议设置成60 

    syslog-enabled:是否把日志输出到syslog中

    syslog-ident:指定syslog里的日志标志

   syslog-facility:指定syslog设备,值可以是USER或LOCAL0-LOCAL7redis中redis.conf配置文件解析

SNAPSHOTTING快照

     save:秒钟 写操作的次数(RDB是整个内存的压缩过的Snapshot,RDB的数据结构,可以配置复合的快照触发条件,默认:是1分钟内改了1万次,或5分钟内改了10次,或15分钟内改了1次。)

     save禁用:如果想要金童RDB持久化的策略,只要不设置任何sava指令,或者给save传入一个空字符串参数也可以

    stop-write-on-bgsave-error:如果配置成No,表示你不在乎数据不一致或者有其他手段发现和控制数据异常

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

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

dbfilename dump.rdb (指定本地数据库文件名,默认值为dump.rdb)

dir ./(指定本地数据库存放目录)

slaveof <masterip> <masterport>( 设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步)

redis中redis.conf配置文件解析

访问的密码查看,设置和取消

masterauth <master-password>(当master服务设置了密码保护时,slav服务连接master的密码)

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

redis中redis.conf配置文件解析

maxclients:设置redis同时可以与多少个客户端进行连接。默认情况下为10000个客户端。当你无法设置进程文件句柄限制时,redis会设置为当前的文件句柄限制值减去32,因为redis会为自身内部处理逻辑留一些句柄出来。如果达到了此限制,redis则会拒绝新的连接请求,并且向这些连接请求方发出“max number of clients reached”以作回应


maxmemory:设置redis可以使用的内存量。一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。如果redis无法根据移除规则来移除内存中的数据,或者设置了“不允许移除”,那么redis则会针对那些需要申请内存的指令返回错误信息,比如SET、LPUSH等。但是对于无内存申请的指令,仍然会正常响应,比如GET等。如果你的redis是主redis(说明你的redis有从redis),那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存,只有在你设置的是“不移除”的情况下,才不用考虑这个因

(1)volatile-lru:使用LRU算法移除key,只对设置了过期时间的键
(2)allkeys-lru:使用LRU算法移除key
(3)volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
(4)allkeys-random:移除随机的key
(5)volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
(6)noeviction:不进行移除。针对写操作,只是返回错误信息

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

redis中redis.conf配置文件解析

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

 appendfilename appendonly.aof(指定更新日志文件名,默认为appendonly.aof)

appendfsync everysec(指定更新日志条件,共有3个可选值: 

  no:表示等操作系统进行数据缓存同步到磁盘(快) 
  always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全) 
  everysec:表示每秒同步一次(折衷,默认值)


hash-max-zipmap-entries 64
  hash-max-zipmap-value 512

指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法

include /path/to/local.conf(指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件)