Redis篇3-redis.conf配置

官方的redis.conf配置文件十分完事,且注释说明很详细到位,我们可以根据提示块,快速锁定目标配置项。
真正使用时,第一注意备份默认配置文件,第二覆盖或者注释掉一些仅适用于练习测试用的默认配置项,比如最大客户端数、最大内存接近处理策略等。
整理常用配置项说明如下:

  • INCLUDES 多配置文件
    类比nginx配置,我们可以以默认的为主框架配置,然后使用 include /xx/xx.conf 将其他模块配置包含进来
  • NETWORK 网络相关配置
    • port 6379
      redis服务启动端口配置,m默认6379
    • tcp-backlog 511
      连接队列大小配置,根据官方注释说明:
      • 高并发场景下需要一个tpc队列来避免慢客户端连接的问题,这里默认值为511
      • 但是,Linux内核将自动将其截断为/proc/sys/net/core/somaxconn的值,所以,如果系统的tps很大,需要同时调整/proc/sys/net/core/somaxconn和tcp-backlog来达到效果
    • bind 127.0.0.1
      配置暴露给哪些客户端连接服务,默认只能本机作为客户端连接。
      • 如果允许任意机器连接,注掉所有bind配置即可,但是这时请单独配置redis密码。
      • 如果指定几台机器才能访问,继续添加bind项即可。
    • timeout 0
      redis-cli客户端空闲超时断开连接的时间设置,默认0代表一直不断开连接
    • tcp-keepalive 300
      tcp连接心跳确认时间设置,redis3.2.1开始默认推荐设置300秒(之前默认推荐是60秒)。该值非0,则会redis服务端会在客户端没有动静时,周期性向客户端发送TCP-ACK信号,原因有俩(还不大懂啥意思):
      • Detect dead peers.
      • Take the connection alive from the point of view of network equipment in the middle.
  • GENERAL 通用标准配置
    • daemonize no
      是否以守护进程方式运行redis服务,默认为no
    • pidfile /var/run/redis_6379.pid
      指定用于记录redis服务进程文件的位置。
    • loglevel notice redis日志级别配置
    • logfile '' 指定日志文件输出路径
    • # syslog-enabled no 系统日志默认是关闭的
    • # syslog-ident redis 系统日志的文本标识
    • # syslog-facility local0 指定系统日志工具,还不清楚。。
    • databases 16 指定初始数据库数目
      默认16,客户端使用 select n 切换数据库,n从0开始。
  • SNAPSHOTTING 快照配置,待结合redis的RDB持久化梳理。
  • APPEND ONLY MODE,待结合redis的AOF持久化梳理。
  • REPLICATION 复制相关配置,待结合redis主从复制梳理。
  • SECURITY 安全相关设置
    • # requirepass foobared 默认的redis-cli连接上redis-server不需要密码。
      客户端连接后使用 config get requirepass 会得到空串,且默认的只有本机可以连接服务。
      • 配置文件打开该注释,redis-cli连接上后,输入 auth foobared 验证密码OK后,才能继续操作
      • 也可以启动后设置密码,客户端连接上后输入config set requirepass xxx设置auth密码即可
  • MEMORY MANAGEMENT 内存管理配置
    • # maxclients 10000 最大客户端连接数
    • # maxmemory <bytes> 最大内存配置
    • # maxmemory-policy noeviction 当redis内存占用接近最大内存配置时采用的策略,有8种:默认noeviction不做算法处理,再写入时报错即可
      • volatile-lru -> Evict using approximated LRU among the keys with an expire set.
      • allkeys-lru -> Evict any key using approximated LRU.
      • volatile-lfu -> Evict using approximated LFU among the keys with an expire set.
      • allkeys-lfu -> Evict any key using approximated LFU.
      • volatile-random -> Remove a random key among the ones with an expire set.
      • allkeys-random -> Remove a random key, any key.
      • volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
      • noeviction -> Don't evict anything, just return an error on write operations.
    • # maxmemory-samples 5 lru、lfu和最小ttl算法不是精确算法,而是近似算法。可以配置样本键数来调整它们的速度和精确度。默认值5产生足够好的结果,十分接近真正的lru,但需要更多的cpu。3更快,但不太准确。
    • 其他配置块
posted @ 2019-09-08 22:53  summaster  阅读(623)  评论(0编辑  收藏  举报