备注:测试版本 redis 4.0.9
Table of Contents
一.CONFIG命令
-- 获取loglevel的信息 CONFIG GET loglevel --通过*配置获取所有的配置信息 CONFIG GET *
复制
测试记录
[root@10-31-1-119 bin]# redis-cli 127.0.0.1:6379> CONFIG GET loglevel 1) "loglevel" 2) "notice" 127.0.0.1:6379> 127.0.0.1:6379> CONFIG GET * 1) "dbfilename" 2) "dump.rdb" 3) "requirepass" 4) "" 5) "masterauth" 6) "" 7) "cluster-announce-ip" 8) "" 9) "unixsocket" 10) "" 11) "logfile" 12) "" 13) "pidfile" 14) "/var/run/redis_6379.pid" 15) "slave-announce-ip" 16) "" 17) "maxmemory" 18) "0" 19) "proto-max-bulk-len" 20) "536870912" 21) "client-query-buffer-limit" 22) "1073741824" 23) "maxmemory-samples" 24) "5" 25) "lfu-log-factor" 26) "10" 27) "lfu-decay-time" 28) "1" 29) "timeout" 30) "0" 31) "active-defrag-threshold-lower" 32) "10" 33) "active-defrag-threshold-upper" 34) "100" 35) "active-defrag-ignore-bytes" 36) "104857600" 37) "active-defrag-cycle-min" 38) "25" 39) "active-defrag-cycle-max" 40) "75" 41) "auto-aof-rewrite-percentage" 42) "100" 43) "auto-aof-rewrite-min-size" 44) "67108864" 45) "hash-max-ziplist-entries" 46) "512" 47) "hash-max-ziplist-value" 48) "64" 49) "list-max-ziplist-size" 50) "-2" 51) "list-compress-depth" 52) "0" 53) "set-max-intset-entries" 54) "512" 55) "zset-max-ziplist-entries" 56) "128" 57) "zset-max-ziplist-value" 58) "64" 59) "hll-sparse-max-bytes" 60) "3000" 61) "lua-time-limit" 62) "5000" 63) "slowlog-log-slower-than" 64) "10000" 65) "latency-monitor-threshold" 66) "0" 67) "slowlog-max-len" 68) "128" 69) "port" 70) "6379" 71) "cluster-announce-port" 72) "0" 73) "cluster-announce-bus-port" 74) "0" 75) "tcp-backlog" 76) "511" 77) "databases" 78) "16" 79) "repl-ping-slave-period" 80) "10" 81) "repl-timeout" 82) "60" 83) "repl-backlog-size" 84) "1048576" 85) "repl-backlog-ttl" 86) "3600" 87) "maxclients" 88) "10000" 89) "watchdog-period" 90) "0" 91) "slave-priority" 92) "100" 93) "slave-announce-port" 94) "0" 95) "min-slaves-to-write" 96) "0" 97) "min-slaves-max-lag" 98) "10" 99) "hz" 100) "10" 101) "cluster-node-timeout" 102) "15000" 103) "cluster-migration-barrier" 104) "1" 105) "cluster-slave-validity-factor" 106) "10" 107) "repl-diskless-sync-delay" 108) "5" 109) "tcp-keepalive" 110) "300" 111) "cluster-require-full-coverage" 112) "yes" 113) "cluster-slave-no-failover" 114) "no" 115) "no-appendfsync-on-rewrite" 116) "no" 117) "slave-serve-stale-data" 118) "yes" 119) "slave-read-only" 120) "yes" 121) "stop-writes-on-bgsave-error" 122) "yes" 123) "daemonize" 124) "no" 125) "rdbcompression" 126) "yes" 127) "rdbchecksum" 128) "yes" 129) "activerehashing" 130) "yes" 131) "activedefrag" 132) "no" 133) "protected-mode" 134) "yes" 135) "repl-disable-tcp-nodelay" 136) "no" 137) "repl-diskless-sync" 138) "no" 139) "aof-rewrite-incremental-fsync" 140) "yes" 141) "aof-load-truncated" 142) "yes" 143) "aof-use-rdb-preamble" 144) "no" 145) "lazyfree-lazy-eviction" 146) "no" 147) "lazyfree-lazy-expire" 148) "no" 149) "lazyfree-lazy-server-del" 150) "no" 151) "slave-lazy-flush" 152) "no" 153) "maxmemory-policy" 154) "noeviction" 155) "loglevel" 156) "notice" 157) "supervised" 158) "no" 159) "appendfsync" 160) "everysec" 161) "syslog-facility" 162) "local0" 163) "appendonly" 164) "no" 165) "dir" 166) "/usr/local/redis/bin" 167) "save" 168) "900 1 300 10 60 10000" 169) "client-output-buffer-limit" 170) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60" 171) "unixsocketperm" 172) "0" 173) "slaveof" 174) "" 175) "notify-keyspace-events" 176) "" 177) "bind" 178) "127.0.0.1" 127.0.0.1:6379>
复制
二.redis.conf配置文件
redis的配置文件都存在redis.conf配置文件里
-- 查找loglevel信息 [root@10-31-1-119 redis]# cat redis.conf | grep loglevel loglevel notice [root@10-31-1-119 redis]#
复制
三.redis的配置项说明
配置项 | 说明 |
---|---|
daemonize | 选项为yes 和 no Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 |
pidfile /var/run/redis.pid | 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 |
port 6379 | 指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口, 因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字 |
bind 127.0.0.1 | 绑定的主机地址 |
timeout 300 | 当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能 |
loglevel verbose | 指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose |
logfile stdout | 日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行, 而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null |
databases 16 | 设置数据库的数量,默认数据库为0,可以使用SELECT |
save |
指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合 save 900 1 save 300 10 save 60 10000 分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。 |
rdbcompression yes | 指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩, 如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大 |
dbfilename dump.rdb | 指定本地数据库文件名,默认值为dump.rdb |
dir ./ | 指定本地数据库存放目录 |
slaveof |
设置当本机为slave服务时,设置master服务的IP地址及端口, 在Redis启动时,它会自动从master进行数据同步 |
masterauth |
当master服务设置了密码保护时,slav服务连接master的密码 |
requirepass foobared | 设置Redis连接密码,如果配置了连接密码, 客户端在连接Redis时需要通过AUTH |
maxclients 128 | 设置同一时间最大客户端连接数,默认无限制, Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数, 如果设置 maxclients 0,表示不作限制。 当客户端连接数到达限制时, Redis会关闭新的连接并向客户端返回max number of clients reached错误信息 |
maxmemory |
指定Redis最大内存限制,Redis在启动时会把数据加载到内存中, 达到最大内存后,Redis会先尝试清除已到期或即将到期的Key, 当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作, 但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区 |
appendonly no | 指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘, 如果不开启,可能会在断电时导致一段时间内的数据丢失。 因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。 默认为no |
appendfilename appendonly.aof | 指定更新日志文件名,默认为appendonly.aof |
appendfsync everysec | 指定更新日志条件,共有3个可选值: no:表示等操作系统进行数据缓存同步到磁盘(快) always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全) everysec:表示每秒同步一次(折衷,默认值) |
vm-enabled no | 指定是否启用虚拟内存机制,默认值为no,简单的介绍一下, VM机制将数据分页存放,由Redis将访问量较少的页即冷数据swap到磁盘上, 访问多的页面由磁盘自动换出到内存中(在后面的文章我会仔细分析Redis的VM机制) |
vm-swap-file /tmp/redis.swap | 虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享 |
vm-max-memory 0 | 将所有大于vm-max-memory的数据存入虚拟内存, 无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据 就是keys), 也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0 |
vm-page-size 32 | Redis swap文件分成了很多的page,一个对象可以保存在多个page上面, 但一个page上不能被多个对象共享,vm-page-size是要根据存储的 数据大小来设定的, 作者建议如果存储很多小对象,page大小最好设置为32或者64bytes; 如果存储很大大对象,则可以使用更大的page,如果不 确定,就使用默认值 |
vm-pages 134217728 | 设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap) 是在放在内存中的,在磁盘上每8个pages将消耗1byte的内存。 |
vm-max-threads 4 | 设置访问swap文件的线程数,最好不要超过机器的核数, 如果设置为0,那么所有对swap文件的操作都是串行的,可能会造成比较长时间的延迟。默认值为4 |
glueoutputbuf yes | 设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启 |
hash-max-zipmap-entries 64 hash-max-zipmap-value 512 |
指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法 |
activerehashing yes | 指定是否激活重置哈希,默认为开启(后面在介绍Redis的哈希算法时具体介绍) |
include /path/to/local.conf | 指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件, 而同时各个实例又拥有自己的特定配置文件 |
四.配置修改
4.1 redis.conf修改
vim redis.conf
复制
4.2 CONFIG修改
-- 语法 CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE -- 举例 CONFIG SET loglevel "verbose"
复制
测试记录
127.0.0.1:6379> CONFIG GET loglevel 1) "loglevel" 2) "notice" 127.0.0.1:6379> CONFIG SET loglevel "verbose" OK 127.0.0.1:6379> CONFIG GET loglevel 1) "loglevel" 2) "verbose"
复制
参考
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
目录