1. 啊,2022年必须把Redis这个知识点给拿下。这里我还是跟随着尚大的笔记去做一些实验。加深影响。

1. 单位

image.png

  • 单位最小是到bytes
  • 大小写不敏感

    2.INCLUDES

    image.png

  • include不可能通过命令被重写

  • 最好将include放置在文件开头
  • 如果想让include的配置覆盖原配置文件的话,放在最后

    2.网络配置

    2.1 bind

  • 不配置bind,且protected-mode = no,任何主机都可以访问
  • 不配置bind,且protected-mode = yes,本机可以访问
  • 不配置bind,且protected-mode=yes,但是配置密码。使用bind的ip可以访问
  • 配置bind,且protected-mode=no,使用 bind的ip可以访问
  • 配置bind,且protected-mode=yes,任何主机可以访问

    总结来说: 若配置了protected-mode=yes,则要么你指定个bind,要么配置密码。否则外网不可访问

2.2 protected-mode

2.3 port

2.4 tcp-backlog

没法测试,公式:未完成三次握手的数量+已完成三次握手的数量

2.5 timeout

客户端多少秒会关闭。这个我也没有测出来,应该是关闭tcp链接

2.6 tcp-keepalive

这个也测不出来啥吧。没N秒检测是否存活

3.通用配置

3.1 daemonize

太熟悉了,就是占不占用控制台

3.2 pidfile

每个redis实例都会有一个pid文件。一般使用绝对路径。若使用相对路径的话

  • 使用相对路径时,拼接 dir目录作为其输出路径,dir 默认为 ./
  • [ ] 关闭Redis实例,自动清除pid文件

    3.3 loglevel

    3.4 logfile

    默认输出到 /dev/null中

    3.5 database

    指定数据库的个数

    4.安全

    4.1 requirepass

    设置密码

    5.限制

    5.1maxclients

    配置后最多同时连接的客户端数,亲测有效

    5.2 maxmemory

    最大内存数,建议必须设置

    5.3 maxmemory-policy

    到大最大内存后的一个淘汰策略
    image.png

    • volatile-lru:使用LRU仅淘汰有过期时间的key
    • allkeys-lru:对全部key使用LRU
    • volatile-lfu:淘汰 最近最不常被使用的有过期时间的key
    • allkeys-lfu:对全部key 淘汰最近最不常被使用的
    • volatile-random:随机
    • allkeys-random:随机
    • volatile-tll:最近要过期的key
    • noeviction:不淘汰,写的时候返回错误

      5.4 maxmemory-samples

      使用上面淘汰算法的检测 key的个数。