3.1.1 INCLUDES(包含)

可以通过includes包含,redis.conf可以作为总闸,包含其他;

3.1.2 GENERAL(通用)

- **daemonize no**

- Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程;

- 启用守护进程后,Redis会把pid写到一个pidfile中,在/var/run/redis.pid;

- **pidfile /var/run/redis.pid**

  当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定;

- **port 6379**

  指定Redis监听端口,默认端口为6379;

  如果指定0端口,表示Redis不监听TCP连接;

- **tcp-backlog 511**

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

- **bind 127.0.0.1**

  绑定的主机地址;

  你可以绑定单一接口,如果没有绑定,所有接口都会监听到来的连接;

- **timeout 0**

  当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能;

- **tcp-keepalive 0**

  TCP连接保活策略;

  单位为秒,如果设置为0,则不会进行Keepalive检测,建议设置成60- **loglevel notice**

  指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning;

- **logfile ""**

  指定了记录日志的文件,空字符串的话,日志会打印到标准输出设备。后台运行的redis标准输出是/dev/null;

- **syslog-enabled no**

  是否把日志输出到syslog中;

- **syslog-ident redis**

  指定syslog里的日志标志

- **syslog-facility local0**

  指定syslog设备,值可以是USER或LOCAL0-LOCAL7;

- **databases 16**

  设置数据库的数量,默认数据库为0

3.1.3 SNAPSHOTING(快照)

- **save**

  指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合;

  save 900 1900秒(15分钟)内有1个更改

  save 300 10300秒(5分钟)内有10个更改

  save 60 1000060秒(1分钟)内有10000个更改

- **stop-writes-on-bgsave-error yes**

  后台存储错误停止写;

- **rdbcompression yes**

  指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大;

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

- **dbfilename dump.rdb**

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

- **dir ./**

  指定本地数据库存放目录(rdb、aof文件也会写在这个目录);

3.1.4 SECURITY(安全

*requirepass foobared**
设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过`auth password`命令提供密码,默认关闭;

3.1.5 LIMITS(极限)

- **maxclients 10000**

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

- **maxmemory <bytes>**

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

- **maxmemory-policy noeviction**

  数据淘汰策略,Reids 具体有 6 种淘汰策略:

  (1volatile-lru:使用LRU算法移除key,只对设置了过期时间的键;

  (2)allkeys-lru:使用LRU算法移除key;

  (3volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键;

  (4)allkeys-random:移除随机的key;

  (5volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key;

  (6)noeviction:不进行移除。针对写操作,只是返回错误信息;

- **maxmemory-samples 5**

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

3.1.6 APPEND ONLY MODE(追加)

- **appendonly no**

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

- **appendfilename "appendonly.aof"**

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

- **appendfsync everysec**

  always:同步持久化,每次发生数据变更会被立即记录到磁盘 性能较差但数据完整性比较好;

  everysec:出厂默认推荐,异步操作,每秒记录 如果一秒内宕机,有数据丢失;

  no:让操作系统来决定何时同步,不能给服务器性能带来多大的提升,而且也会增加系统奔溃时数据丢失的数量;

- **no-appendfsync-on-rewrite no**

  重写时是否可以运用Appendfsync,用默认no即可,保证数据安全性;

- **auto-aof-rewrite-percentage 100**

  重写指定百分比,为0会禁用AOF自动重写特性;

- **auto-aof-rewrite-min-size 64mb**

  设置重写的基准值;

n-rewrite no**

重写时是否可以运用Appendfsync,用默认no即可,保证数据安全性;

  • auto-aof-rewrite-percentage 100

    重写指定百分比,为0会禁用AOF自动重写特性;

  • auto-aof-rewrite-min-size 64mb

    设置重写的基准值;


Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐