一文读懂Redis配置,史上真香配置

文章目录

  • 基本配置项
  • AOF持久化配置项
  • RDB持久化配置项
  • 淘汰策略配置项
  • 主从复制配置项
  • 鸣谢

让那些总为redis连接异常的小白指引明灯,少走弯路。为那些不知道如何进行高级配置的大佬整一杯小酒。

基本配置项

  1. bind:用于设置Redis绑定的IP地址。默认情况下,Redis监听所有可用的接口,如果需要指定IP地址,可以使用此配置项进行设置。默认开启,连接不上的原因之一,未注释掉只能进行本地连接,不能使用工具和远程连接

  2. port:用于设置Redis监听的端口号。默认端口为6379。连接不上的可能原因之一,端口号被改掉了。当然防火墙也是重点连接不上的原因(腾讯、阿里、宝塔。。。),记得开放端口哦,要不然连不上

  3. timeout:用于设置Redis客户端连接的超时时间。如果客户端在指定的时间内没有与Redis建立连接,则会被关闭连接。

  4. maxclients:用于限制同时连接到Redis的客户端数量。当客户端数量达到限制时,Redis将不再接受新的连接。

  5. loglevel:用于设置Redis的日志级别。可以根据需要进行设置,例如设置为debug、info、notice、warning等不同的级别。

  6. logfile:用于设置Redis日志文件的路径。默认情况下,Redis会将日志输出到标准输出。

  7. databases:用于设置Redis数据库的数量以及各自的名称。默认情况下,只有一个数据库,其名称为“db0”。默认16,db分区数量。代码不配置默认连接的是db0

  8. requirepass:用于设置Redis的身份验证密码。默认无密码,这也是连接不上的原因之一,密码验证被开启了。

  9. notify-keyspace-events Ex :key过期监听启用配置项

AOF持久化配置项

Redis的AOF(Append-Only File)持久化机制是通过记录所有对Redis数据库的写操作来达到持久化的目的。当Redis服务器重启时,会通过重新执行AOF文件中的命令来恢复数据。

  1. appendonly:用于开启或关闭AOF持久化。如果设置为"yes",则开启AOF持久化;如果设置为"no",则关闭AOF持久化。
  2. appendfilename:用于设置AOF文件的名称。默认值为"appendonly.aof"。
  3. appendfsync:用于设置AOF文件的同步策略。可以选择"always"、“everysec"或"no”。always表示每次写入都同步,everysec表示每秒同步一次,no表示由操作系统决定何时同步。默认值为"everysec"。
  4. auto-aof-rewrite-percentage:用于设置自动AOF重写的阈值。当AOF文件的扩展比例超过该值时,Redis会自动执行重写操作。默认值为100,表示当AOF文件的大小是上一次重写后大小的一倍时触发重写。
  5. auto-aof-rewrite-min-size:用于设置自动AOF重写的最小大小。只有在AOF文件的大小大于该值时,才会执行重写操作。默认值为64MB。
  6. no-appendfsync-on-rewrite:用于设置在执行AOF文件重写时是否禁用同步。如果设置为"yes",则在进行重写时不会进行同步操作。默认值为"yes"。
  7. aof-load-truncated:用于设置在加载AOF文件时是否允许Redis忽略出现错误的命令。如果设置为"yes",则忽略错误;如果设置为"no",则不允许加载出现错误的AOF文件。默认值为"yes"。
  8. aof-use-rdb-preamble:用于设置AOF文件的开头是否包含RDB格式的部分。如果设置为"yes",则在AOF文件的开头会先保存一份RDB格式的数据,这有助于加速数据加载。默认值为"no"。

RDB持久化配置项

Redis的RDB(Remote Dictionary Base)持久化机制是通过将Redis数据库的某个时间点的状态以二进制格式保存到磁盘上的方式来实现持久化。当Redis服务器需要恢复数据时,可以通过加载RDB文件来恢复数据。

  1. save:用于设置RDB持久化的时间间隔和条件。可以设置不同的时间间隔和条件组合,例如"save 900 1"表示每900秒内有至少1个写操作就保存一次RDB文件;"save 300 10"表示每300秒内有至少10个写操作就保存一次RDB文件。
  2. bgsave:用于设置以后台方式执行RDB持久化。如果设置为"yes",则以后台方式执行RDB持久化,不会阻塞主线程。
  3. rdbcompression:用于设置RDB文件是否使用压缩。如果设置为"yes",则使用LZF算法进行压缩。
  4. rdbchecksum:用于设置RDB文件是否使用校验和。如果设置为"yes",则添加校验和到RDB文件中。
  5. dbfilename:用于设置RDB文件的名称。
  6. dir:用于设置RDB文件的存储目录。

淘汰策略配置项

Redis提供了多种淘汰策略配置项,用于配置在内存不足时如何淘汰掉不需要的数据。

  1. maxmemory-policy:用于设置Redis的最大内存使用策略。可以选择不同的策略,例如"noeviction"、“lru”、“allkeys-lru”、“volatile-lru”、“allkeys-random”、“volatile-random"或"volatile-ttl”。
  2. volatile-ttl:用于设置Redis在淘汰数据时,是否只淘汰带有过期时间的键。如果设置为"yes",则只会淘汰带有过期时间的键;如果设置为"no",则可能会淘汰带有过期时间的键以及不带过期时间的键。
  3. volatile-lru:用于设置Redis在淘汰数据时,是否只淘汰带有过期时间的键并使用LRU算法。如果设置为"yes",则只会淘汰带有过期时间的键并使用LRU算法;如果设置为"no",则可能会淘汰带有过期时间的键以及不带过期时间的键。
  4. volatile-random:用于设置Redis在淘汰数据时,是否只淘汰带有过期时间的键并随机选择要淘汰的键。如果设置为"yes",则只会淘汰带有过期时间的键并随机选择要淘汰的键;如果设置为"no",则可能会淘汰带有过期时间的键以及不带过期时间的键。
  5. allkeys-lru:用于设置Redis在淘汰数据时,是否使用LRU算法淘汰所有的键。如果设置为"yes",则使用LRU算法淘汰所有的键;如果设置为"no",则可能会淘汰带有过期时间的键以及不带过期时间的键。
  6. allkeys-random:用于设置Redis在淘汰数据时,是否随机选择要淘汰的键。如果设置为"yes",则随机选择要淘汰的键;如果设置为"no",则不会淘汰任何键。
  7. noeviction:用于设置Redis在内存不足时禁止淘汰任何键。如果设置为"yes",则禁止淘汰任何键;如果设置为"no",则根据上述策略进行淘汰。

主从复制配置项

Redis支持主从复制,可以实现数据的高可用性和读写分离。=

  1. replication-role:用于设置Redis节点的角色。如果节点是主节点,则设置为"master";如果节点是从节点,则设置为"slave"。
  2. master-host:用于设置主节点的IP地址。
  3. master-port:用于设置主节点的端口号。
  4. master-auth-password:用于设置主节点的身份验证密码。
  5. slave-announce:用于设置是否宣告从节点。如果设置为"yes",则宣告从节点;如果设置为"no",则不宣告从节点。
  6. slave-read-only:用于设置从节点是否只读。如果设置为"yes",则从节点只读;如果设置为"no",则从节点可写。
  7. slave-priority:用于设置从节点的优先级。优先级越高的从节点越有可能被选为主节点。
  8. replica-read-only:用于设置从节点是否只读。如果设置为"yes",则从节点只读;如果设置为"no",则从节点可写。这个配置项比slave-read-only更具体,优先级更高。
  9. replica-priority:用于设置从节点的优先级。优先级越高的从节点越有可能被选为主节点。
  10. replica-announce:用于设置是否宣告从节点。如果设置为"yes",则宣告从节点;如果设置为"no",则不宣告从节点。这个配置项比slave-announce更具体,优先级更高。

鸣谢

  • 非常感谢你从头到尾阅读了这篇文章,希望其中的内容对你有所启发和帮助。如果你还有其他问题或需要进一步的了解,欢迎随时关注我的动态并留言
  • 最后可以给作者点个关注和小赞赞嘛,谢谢!
  • 觉得有收藏价值可以进行收藏

你可能感兴趣的:(数据库系列,redis)