• 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更快,但不太准确。
      • 其他配置块
  • 相关阅读:
    基于python实现二叉树的遍历 Marathon
    基于python实现链式队列代码 Marathon
    基于python常用排序与查找 Marathon
    elasticsearch要点及常用查询 Marathon
    elasticsearch练习 Marathon
    基于python实现单链表代码 Marathon
    gitlab 配置私人仓库 Marathon
    python虚拟环境的配置ubuntu 18.04 Marathon
    基于python实现顺序存储的队列代码 Marathon
    python实现elasticsearch操作CRUD API Marathon
  • 原文地址:https://www.cnblogs.com/noodlerkun/p/11489028.html
Copyright © 2020-2023  润新知