zoukankan      html  css  js  c++  java
  • Redis配置

    Redis配置简介

    可以在启动redis-server时指定应该加载的配置文件,方法如下:

    $ ./redis-server /path/to/redis.conf

    redis配置文件被分成了几大块区域,它们分别是:

    1.通用(general

    2.快照(snapshotting

    3.复制(replication

    4.安全(security

    5.限制(limits)

    6.追加模式(append only mode)

    7.LUA脚本(lua scripting)

    8.慢日志(slow log)

    9.事件通知(event notification

    redis配置-通用

    默认情况下,redis并不是以daemon形式来运行的。通过daemonize配置项可以控制redis的运行形式,如果改为yes,那么redis就会以daemon形式运行:

    daemonize no

    当以daemon形式运行时,redis会生成一个pid文件,默认会生成在/var/run/redis.pid。当然,你可以通过pidfile来指定pid文件生成的位置

    当一个redis-client一直没有请求发向server端,那么server端有权主动关闭这个连接,可以通过timeout来设置“空闲超时时限”,0表示永不关闭。

    timeout 0

    TCP连接保活策略,可以通过tcp-keepalive配置项来进行设置,单位为秒,假如设置为60秒,则server端会每60秒向连接空闲的客户端发起一次ACK请求,以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接。所以关闭一个连接最长需要120秒的时间。如果设置为0,则不会进行保活检测。

    redis支持通过loglevel配置项设置日志等级,共分四级,即debugverbosenoticewarning

    redis也支持通过logfile配置项来设置日志文件的生成位置。如果设置为空字符串,则redis会将日志输出到标准输出。假如你在daemon情况下将日志设置为输出到标准输出,则日志会被写到/dev/null中。

    对于redis来说,可以设置其数据库的总数量,假如你希望一个redis包含16个数据库,那么设置如下:

    databases 16

    redis配置-快照

    快照,主要涉及的是redisRDB持久化相关的配置

    可以用如下的指令来让数据保存到磁盘上,即控制RDB快照功能:

    save 900 1 //表示每15分钟且至少有1key改变,就触发一次持久化

    save 300 10 //表示每5分钟且至少有10key改变,就触发一次持久化

    save 60 10000 //表示每60秒至少有10000key改变,就触发一次持久化

    如果你想禁用RDB持久化的策略,只要不设置任何save指令就可以,或者给save传入一个空字符串参数也可以达到相同效果,就像这样:

    save ""

    对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。

    rdbcompression yes

    在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果你希望获取到最大的性能提升,可以关闭此功能。

    rdbchecksum yes

    设置快照文件的名称,默认是这样配置的:

    dbfilename dump.rdb

    设置这个快照文件存放的路径。比如默认设置就是当前文件夹:

    dir ./

    redis配置-复制

    redis提供了主从同步功能。

    通过slaveof配置项可以控制某一个redis作为另一个redis的从服务器,通过指定IP和端口来定位到主redis的位置。一般情况下,我们会建议用户为从redis设置一个不同频率的快照持久化的周期,或者为从redis配置一个不同的服务端口等等。

    slaveof <masterip> <masterport>

    如果主redis设置了验证密码的话(使用requirepass来设置),则在从redis的配置中要使用masterauth来设置校验密码,否则的话,主redis会拒绝从redis的访问请求。

    masterauth <master-password>

    redis配置-安全

    可以要求redis客户端在向redis-server发送请求之前,先进行密码验证。

    requirepass zhimakaimen

    redis允许我们对redis指令进行更名,比如将一些比较危险的命令改个名字,避免被误执行。比如可以把CONFIG命令改成一个很复杂的名字,这样可以避免外部的调用,同时还可以满足内部调用的需要:

    rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c89

    甚至可以禁用掉CONFIG命令,那就是把CONFIG的名字改成一个空字符串

    rename-command CONFIG ""

    redis配置-限制

    可以设置redis同时可以与多少个客户端进行连接。默认情况下为10000个客户端。

    maxclients 10000

    redis配置-追加模式

    建议大家,AOF机制和RDB机制可以同时使用,不会有任何冲突。

    appendonly yes

    appendfilename "appendonly.aof"

    appendfsync everysec

    redis配置-慢日志

    针对慢日志,你可以设置两个参数,一个是执行时长,单位是微秒,另一个是慢日志的长度。当一个新的命令被写入日志时,最老的一条会从命令日志队列中被移除。

    单位是微秒,即1000000表示一秒。负数则会禁用慢日志功能,而0则表示强制记录每一个命令。

    slowlog-log-slower-than 10000

    slowlog-max-len 128

    使用*号获取所有配置项

    127.0.0.1:6379> config get *

      1) "dbfilename"

      2) "dump.rdb"

      3) "requirepass"

      4) ""

      5) "masterauth"

      6) ""

      7) "unixsocket"

      8) ""

      9) "logfile"

     10) ""

     11) "pidfile"

     12) ""

     13) "slave-announce-ip"

     14) ""

     15) "maxmemory"

     16) "0"

     17) "maxmemory-samples"

     18) "5"

     19) "timeout"

     20) "0"

     21) "auto-aof-rewrite-percentage"

     22) "100"

     23) "auto-aof-rewrite-min-size"

     24) "67108864"

     25) "hash-max-ziplist-entries"

     26) "512"

     27) "hash-max-ziplist-value"

     28) "64"

     29) "list-max-ziplist-size"

     30) "-2"

     31) "list-compress-depth"

     32) "0"

     33) "set-max-intset-entries"

     34) "512"

     35) "zset-max-ziplist-entries"

     36) "128"

     37) "zset-max-ziplist-value"

     38) "64"

     39) "hll-sparse-max-bytes"

     40) "3000"

     41) "lua-time-limit"

     42) "5000"

     43) "slowlog-log-slower-than"

     44) "10000"

     45) "latency-monitor-threshold"

     46) "0"

     47) "slowlog-max-len"

     48) "128"

     49) "port"

     50) "6379"

     51) "tcp-backlog"

     52) "511"

     53) "databases"

     54) "16"

     55) "repl-ping-slave-period"

     56) "10"

     57) "repl-timeout"

     58) "60"

     59) "repl-backlog-size"

     60) "1048576"

     61) "repl-backlog-ttl"

     62) "3600"

     63) "maxclients"

     64) "10000"

     65) "watchdog-period"

     66) "0"

     67) "slave-priority"

     68) "100"

     69) "slave-announce-port"

     70) "0"

     71) "min-slaves-to-write"

     72) "0"

     73) "min-slaves-max-lag"

     74) "10"

     75) "hz"

     76) "10"

     77) "cluster-node-timeout"

     78) "15000"

     79) "cluster-migration-barrier"

     80) "1"

     81) "cluster-slave-validity-factor"

     82) "10"

     83) "repl-diskless-sync-delay"

     84) "5"

     85) "tcp-keepalive"

     86) "300"

     87) "cluster-require-full-coverage"

     88) "yes"

     89) "no-appendfsync-on-rewrite"

     90) "no"

     91) "slave-serve-stale-data"

     92) "yes"

     93) "slave-read-only"

     94) "yes"

     95) "stop-writes-on-bgsave-error"

     96) "yes"

     97) "daemonize"

     98) "no"

     99) "rdbcompression"

    100) "yes"

    101) "rdbchecksum"

    102) "yes"

    103) "activerehashing"

    104) "yes"

    105) "protected-mode"

    106) "yes"

    107) "repl-disable-tcp-nodelay"

    108) "no"

    109) "repl-diskless-sync"

    110) "no"

    111) "aof-rewrite-incremental-fsync"

    112) "yes"

    113) "aof-load-truncated"

    114) "yes"

    115) "maxmemory-policy"

    116) "noeviction"

    117) "loglevel"

    118) "notice"

    119) "supervised"

    120) "no"

    121) "appendfsync"

    122) "everysec"

    123) "syslog-facility"

    124) "local0"

    125) "appendonly"

    126) "no"

    127) "dir"

    128) "/software/redis-3.2.3/src"

    129) "save"

    130) "3600 1 300 100 60 10000"

    131) "client-output-buffer-limit"

    132) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"

    133) "unixsocketperm"

    134) "0"

    135) "slaveof"

    136) ""

    137) "notify-keyspace-events"

    138) ""

    139) "bind"

    140) ""

    127.0.0.1:6379> config get loglevel

    1) "loglevel"

    2) "notice"

    127.0.0.1:6379> config set loglevel "warning"

    OK

    127.0.0.1:6379> config get loglevel

    1) "loglevel"

    2) "warning"

    info命令所有的section

    模块名

    模块含义

    Server

    服务器信息

    Clients

    客户端信息

    Memory

    内存信息

    Persistence

    持久化信息

    Stats

    全局统计信息

    Replication

    复制信息

    CPU

    CPU消耗信息

    Commandstats

    命令统计信息

    Cluster

    集群信息

    Keyspace

    数据库键统计信息

  • 相关阅读:
    理解Mysql prepare预处理语句
    php观察折模式
    RSA加密解密
    64位CentOS 6.4下安装wine(32位)
    wireshark安装
    linux安装Vmware的时候出现“Could not open /dev/vmmon”
    php中的魔术方法
    lnmp安装--php安装
    XZ压缩最新压缩率之王
    package.json文件
  • 原文地址:https://www.cnblogs.com/allenhu320/p/11339834.html
Copyright © 2011-2022 走看看