zoukankan      html  css  js  c++  java
  • redis配置文件

     INCLUDES

    Redis只有一个 redis.conf 配置文件,如果有多个人维护,则可以创建多个配置文件,通过 include 配置进来


     MODULES

    自定义模块配置,通过 loadmodule 配置进来


     NETWORK

    - bind:绑定redis服务器网卡IP,默认为127.0.0.1,访问redis服务器只能通过本机的客户端连接。如果要支持外部网络连接,则需要注释 # 127.0.0.1

    - port:redis服务运行的端口号,默认为6379

    - protected-mode:保护模式,默认为yes,需要通过bind ip 或者 设置访问密码才能访问;如果为no,则外部网络可直接访问

    - timeout:客户端连接的超时时间,默认为0,单位为秒,永不关闭连接。如果设置了连接超时时间,客户端在这段超时时间内未发出任何指令,则关闭该客户端连接

    - tcp-keepalive:检查客户端是否处于健康状态,避免服务器一直阻塞,默认为300,单位为秒


     GENERAL

     - daemonize:redis服务是否以守护进程(后台运行)的方式启动,默认为no,建议设置为yes

    - pidfile:配置PID文件路径,当redis以守护进程的方式启动时,它会把 pid 默认写到 /var/redis/run/redis_6379.pid 里面

    - loglevel:日志级别,默认为notice。redis一共有四种日志级别

      * debug(记录大量日志信息,适用于开发、测试阶段)

      * verbose(较多日志信息)

      * notice(适量日志信息,使用于生产环境)

      * warning(仅有部分重要、关键信息才会被记录)

    - logfile:日志打印文件地址

    - databases:设置数据库数目,默认使用数据库为DB 0,默认16个数据库,用select dbid 切换


     SNAPSHOTTING

     - save命令:触发redis持久化的条件,将内存中的数据保存到磁盘中,默认配置如下:

    - save 900 1:当900秒内,至少有1个key的值发生变化,则保存到磁盘中
    - save 300 10:当300秒内,至少有10个key的值发生变化,则保存到磁盘中
    - save 60 10000:当60秒内,至少有10000个key的值发生变化,则保存到磁盘中

    如果不需要做持久化,仅使用缓存功能,则可以将持久化条件全部注释,且设置为save ""

    - stop-writes-on-bgsave-error:默认为yes。当启用RDB持久化且最后一次后台数据保存失败,redis是否停止接收数据。可以让用户知道将内存中的数据持久化到磁盘中发生了错误。如果设置为no,则不会意识到灾难发生,当redis重启后,可以重新开始接收数据

    - rdbcompression:默认为yes。对于持久化到磁盘中的数据是否进行压缩处理,如果为yes,则redis采用LZF算法进行压缩;如果不想消耗cpu来进行压缩,可以设置为no,但存储在磁盘中的快照会比较大

    - rdbchecksum:默认为yes。在存储快照后,可以使用redis的CRC64算法进行数据校验,会产生一定的性能消耗,如果想达到最大的性能提升,可以设置为no关闭

    - dbfilename:设置快照的文件名,默认为dump.rdb

    - dir:存储快照存放的文件路径。此配置是一个目录,不是一个文件名,使用 dbfilename 的值做为保存的文件名


     REPLICATION

     - slave-serve-stale-data:默认为yes。主从复制中,从服务器可以响应客户端请求;如果设置为no,主从复制中,从服务器将阻塞所有请求,有客户端请求时返回“SYNC with master in progress”

    - slave-read-only:默认为yes。主从节点中slave节点只读,如果设置为no,则slave节点可以写

    - repl-diskless-sync:默认为no。主从数据复制是否使用无硬盘复制功能

    - repl-diskless-sync-delay:

    - repl-disable-tcp-nodelay:


     SECURITY

    - rename-command:命令重命名,对于一些危险命令,可以使用

      * flushdb:清空数据库

      * flushall:清空所有记录

      * config:服务器配置项

      * keys:可查看所有key键

    一般危险命令会禁止使用,如rename-command  FLUSHALL "";如果需要保留命令,但需谨慎使用,可以重命名,如rename-command FLUSHALL 重命名值。

    - requirepass:设置redis连接密码


    CLIENTS

    - maxclients:设置redis最大连接数,注释此配置或设置为0,则标识不做限制。如果客户端连接数达到限制时,会返回 "max number of clients reached" 错误信息


     MEMORY MANAGEMENT

    - maxmemory:设置redis最大内存。如果设置为0,则代表不做限制,通常配合 maxmemory-policy 配置项一起使用

    - maxmemory-policy:当redis内存达到设置的最大值时,redis将使用内存清除策略,有以下几种:

      * volatile-lru:利用LRU算法移除设置过期时间的key(LRU:最近使用。Least Recently Used)

      * allkeys-lru:利用LRU算法移除任何key

      * volatile-random:移除设置过期时间的随机key

      * allkeys-random:移植随机key

      * volatile-ttl:移除即将过期的key

      * noeviction  noeviction:不移除key,返回一个错误,默认选项


    APPEND ONLY MODE

    - appendonly:redis默认使用RDB方式持久化,此配置是使用AOF的方式进行持久化,默认为no。如果设置为yes,redis会把每次写入的数据接收后都写入appendonly.aof文件中,每次启动redis会先从appendonly.aof文件中将数据读取到内存中,忽略RDB文件

    - appendfilename :AOF持久化的文件名,默认为 appendonly.aof

    - appendfsync:AOF持久化策略

      * no:表示不执行fsync命令,由操作系统保证将内存中的数据同步到磁盘中,速度最快

      * always:表示每次写入都执行fsync命令,将内存中的数据同步到磁盘中

       * everysec:表示每秒执行一次fsync命令,可能会导致丢失这1s数据(如果执行fsync命令失败),默认项

    - no-appendfsync-on-rewrite:在重写入aof或rdb文件时会造成阻塞,会执行大量IO,如果对延迟要求较高,则设置为yes,表示rewrite期间对新写操作不执行fsync命令,暂存于内存中,等rewrite完成后再写入,默认值为no,建议为yes。

    - auto-aof-rewrite-percentage:默认值为100。aof自动重写配置,当前aof文件大小超过上一次重写的aof文件的百分之多少进行重写,redis执行bgrewriteaof对日志文件进行重写。

    - auto-aof-rewrite-min-size:默认为64mb。设置允许重写的最小aof文件大小,避免达到了约定100%文件任然很小的情况还要重写

    - aof-load-truncated:如果redis宕机,在恢复启动后,可能aof文件尾部是不完整的。默认值为yes,aof日志文件会继续使用,如果设置为no,则恢复失败,需要用户手动 redis-check-aof 修复AOF文件才可使用


     LUA SCRIPTING

     - lua-time-limit:lua脚本执行的最大时间,单位为ms。默认值为5000


     REDIS CLUSTER

     - cluster-enabled:redis集群开关

    - cluster-config-file:redis集群配置文件,每个节点都有一个集群配置文件

    - cluster-node-timeout:集群节点互联超时毫秒数,默认为15000毫秒

    - cluster-slave-validity-factor:默认值为10。在进行故障转移的时候,全部slave节点都会请求申请为master节点,但有些slave节点可能与master节点断开连接一段时间了,导致数据过于陈旧,这样的slave节点不应该被提升为master。该参数就是用来判断slave节点与master节点断线的时间是否过长。判断方法是:比较slave节点断开连接的时间和(node-timeout * slave-validity-factor) + repl-ping-slave-period,如果节点超时时间为三十秒, 并且slave-validity-factor为10,假设默认的repl-ping-slave-period是10秒,即如果超过310秒slave节点将不会尝试进行故障转移

    - cluster-migration-barrier:master节点需要的最小slave节点数,只有达到这个数,master节点失败时,slave节点才能迁移到其他master节点上

    - cluster-require-full-coverage:默认情况下,集群全部的slot有节点负责,集群状态才为ok,才能提供服务。 设置为no,可以在slot没有全部分配的时候提供服务。不建议打开该配置,这样会造成分区的时候,小分区的master一直在接受写请求,而造成很长时间数据不一致

  • 相关阅读:
    c#判断输入的是不是数字
    params 关键字载入空值的陷阱
    拆箱陷阱
    接口的概念和声明
    数据库
    ios 纵向的UISlider
    微信小程序学习网站
    Spark RDD(2)
    SparkSql
    廖雪峰老师学习网站
  • 原文地址:https://www.cnblogs.com/lwcode6/p/13405385.html
Copyright © 2011-2022 走看看