Reids配置文件

2023-10-30  本文已影响0人  风雪_夜归人

redis.conf

INCLUDES

1.include :类似于spring中的配置文件,主配置文件可以加载其他配置文件
include /path/to/local.conf

NETWORK

  1. bind 127.0.0.1 绑定ip地址(能够访问服务端的地址)当前的redis服务只能被本机访问
  2. protect-mode yes 开启保护模式
    当bind没哟配置且登录不需要密码时,启动保护模式(只能被本地访问)
  3. port 6379 端口号
  4. timeout 0 客户端超时时间,0代表一直保持
  5. tcp-keepalive 300s 每300检查客户端的健康情况,避免服务端阻塞
  6. tcp-backlog 队列数量(未完成握手和已完成握手)

GENERAL

  1. daemonize no 后台运行开关
    改为yes可后端运行
  2. pidfile /var/run/redis_6379.pid 当守护进程开启时,写入进程id的文件路径
  3. loglevel notice 四种级别,notice对应生产环境
  4. logfile "" 日志存储的位置
  5. databases 16 初始化数据库有16个 下标0~15

config命令

安全和限制

  1. 是可以从客户端查看配置项信息的方式,使用config get
    安全校验配置 requirepass 代表是否设置密码
    设置密码:config set requirepass password
    获取密码:config get requirepass
    设置密码后登录需要校验 auth password
    恢复初始状态 config set requirepass ""
    危险命令
    config/flushdb/flushall/keys
    raname-command 命令 "" 将命令设置为不可用
    raname-command config "zhangfei" 将config命令替换为zhangfei,这样查看密码不用config get requirepass 而是zhangfei get requirepass
    其他限制
    maxclients 10000 客户端并发数据的限制
    maxmemory 最大内存

淘汰策略
maxmemory-policy 缓存淘汰策略
默认值noeviction (不删除只报错)
其他策略主要分为2种情况
allkeys 所有的键值都可能删除
volatile 只删除设置了过期时间的键值

  1. noeviction :不删除策略,达到最大内存限制时,如果需要更多内存,直接返回错误信息。大多数命令都会导致占用更多的内存
    2.allkeys-lru:所有key通用;优先删除最近最少使用(less recently used,LRU)的key
    3.volatile-lru:优先删除最近最少使用(less recently used,LRU)的key(限于会过期的key)
    4.allkeys-random:所有key通用;随机删除一部分key
    5.volatile-random:随机删除一部分key(限于会过期的key)
    6.volatile-ttl:优先删除剩余时间(time to live,TTL)短的key(限于会过期的key)

近似LRU算法

因为LRU算法需要消耗大量内存,所采用近似LRU算法,并且是懒处理。

算法原理:随机采样淘汰元素

首先给每个key增加一个额外24bit的字段,记录最后被访问的时间戳
然后当内存超出maxmemory时,随机采样出5个key(通过maxmemory_samples设置),采样管范围取决于是allkeys还是volitile,淘汰掉旧的key,如果仍然超出,继续采样淘汰。

算法分析

采样范围越大,越接近严格LRU,Redis3.0中增加了淘汰池,进一步提升了效果。
淘汰池是一个大小为maxmemory_samples的数组,每一次淘汰循环中,新随机出的key会和淘汰池中的key列表融合,淘汰掉最旧的key,剩余较旧的key列表放在淘汰池中等待下一次循环

上一篇 下一篇

猜你喜欢

热点阅读