3.Redis配置文件
- 在 Redis 的安装目录中有一个名为 redis.windows.conf 的配置文件,若在 Linux 中则为 redis.conf。redis启动的时候需要此文件
3.1 文件内容
- 配置文件unit单位对大小写不敏感。开头定义了一些基本的度量单位,只支持bytes,不支持bit。
- 包含其他配置文件。类似:spring的import、jsp的include。经过includes包含,redis.conf能够做为总闸,包含其余
- 修改保护模式,不修改保护模式也是只能内网访问的 protected-mode yes 改成 protected-mode no
- always-show-logo no是否显示redis启动时的logo
- stop-writes-on-bgsave-error yes:持久化失败后,是否停止写入.如:当redis无法写入磁盘的话,就停止redis的写操作。若是配置成no,表示你不在意数据不一致或者有其余的手段发现和控制
- rdbchecksum yes 保存rdb文件的时候,还可让redis使用CRC64算法来进行数据校验,可是这样作会增长大约10%的性能消耗,若是无法获取到最大的性能提高,能够关闭此功能
- maxclients 10000 设置同一时间能连接上redis的最大客户端的数量,默认无限制。当你没法设置进程文件句柄限制时,redis会设置为当前的文件句柄限制值减去32,由于redis会为自身内部处理逻辑留一些句柄出来。Redis能够同时打开的客户端链接数为Redis进程能够打开的最大文件描述符数,若是设置 maxclients 0,表示不做限制。若是达到了此限制,redis则会拒绝新的链接请求,而且向这些链接请求方发出“max number of clients reached”以做回应。
- maxmemory-policy noeviction 内存处理策略,用于在超出内存限制时,删除一些key(最后名的配置记录右介绍6中策略)
扩展:4种线程池,5种阻塞队列,4种拒绝策略,5种线程池状态。 自定义线程池7参数
- appendonlyno 默认是不开启aof模式的,默认是使用rdb方式持久化的,在大部分所有的情况下,rdb完全够用
3.1查看配置项:
- 使用 Redis 的
CONFIG
命令来查看或者更改 Redis 的配置信息。语法格式如下:
redis 127.0.0.1:6379> CONFIG GET 配置名称
- 如:获取日志等级的配置项:
[root@VM-0-3-centos ~]# redis-cli -a xxxx
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
- 通过使用
*
可以查看所有配置项,命令如下:
127.0.0.1:6379> CONFIG GET *
...
335) "lazyfree-lazy-user-flush"
336) "no"
337) "repl-diskless-sync-delay"
338) "5"
339) "cluster-replica-validity-factor"
340) "10"
341) "hash-max-ziplist-entries"
342) "512"
343) "slave-read-only"
344) "yes"
由于版本和操作系统的不同,配置项的数量会存在差异
3.2 更改配置项
- 如果想要重新设置配置项,需要使用以下命令:
redis 127.0.0.1:6379> CONFIG SET 配置项名称 配置项参数值
#修改日志等级
127.0.0.1:6379> CONFIG SET loglevel "verbose"
OK
127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "verbose"
- Redis 的日志级别有以下四种:
- debug:会打印出很多信息,适用于开发和测试阶段。
- verbose(冗长的):包含很多不太有用的信息,但比debug简化一些。
- notice:适用于生产模式。
- warning : 警告信息。
- Redis 默认设置为 verbose,开发测试阶段可以用 debug,生产模式一般选用 notice。
3.3 更改配置文件
- Redis 某些配置信息无法直接通过命令修改,此时就需要修改配置文件,比如设置 Redis 允许远程连接的功能。配置文件修改如下:
1.注释掉本地IP地址,绑定要访问的外部IP
#bind 127.0.0.1 ::1
bind 192.168.1.1
2.关闭保护模式(把yes改为no)
protected-mode no
3.重启服务器,windows重启
redis-server --service-stop
redis-server --service-start
Linux重启
sudo /etc/init.d/redis-server restart
3.4 配置项说明
- 配置项说明如下表:
配置项 | 参数 | 说明 |
---|---|---|
daemonize | no/yes | 默认为 no,表示 Redis 不是以守护进程的方式运行,通过修改为 yes 启用守护进程。 |
pidfile | 文件路径 | 当 Redis 以守护进程方式运行时,会把进程 pid 写入自定义的文件中。 |
port | 6379 | 指定 Redis 监听端口,默认端口为 6379,存在被攻击的可能,如:挖矿。由于6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字 |
bind | 127.0.0.1 | 绑定的主机地址,若要远程访问可以指定通配符* ,也可注释掉,或者只绑定特定的IP。0.0.0.0是不清楚的主机和目的网络,0.0.0.0 是绑定到本机的所有IP上 |
timeout | 0 | 客户端闲置多长秒后关闭连接,若指定为 0 ,表示不启用该功能。 |
loglevel | notice | 指定日志记录级别,支持四个级别:debug、verbose、notice、warning,默认为 notice。 |
logfile | stdout | 日志记录方式,为空默认为标准输出,可以置为文件名。若是配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null |
databases | 16 | 设置数据库的数量(0-15个)共16个,Redis 默认选择的是 0 库,可以使用 SELECT n命令来选择使用哪个数据库储存数据。 |
save[seconds] [changes] | 可以同时配置三种模式: save 900 1 save 300 10 save 60 10000 | 表示在规定的时间内,执行了规定次数的写入或修改操作,Redis 就会将数据同步到指定的磁盘文件中。redis是内存数据库,如果没有持久化,那么数据断电及失!比如 900s 内做了一次更改,Redis 就会自动执行数据同步。 |
rdbcompression | yes/no | 当数据存储至本地时rdb文件后,是否要压缩rdb文件,默认为 yes。redis会采用LZF算法进行压缩。若是你不想消耗CPU来进行压缩的话,能够设置为关闭此功能,但会致使数据库文件变的巨大 |
dbfilename | dump.rdb | 指定本地存储数据库的文件名,默认为 dump.rdb。 |
dir | ./ | maxmemory指定本地rdb库存放目录,默认当前目录。 |
slaveof | 主从复制配置选项 | 当本机为 slave 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动与 master 主机进行数据同步。 |
requirepass | foobared 默认关闭 | 密码配置项,默认关闭,用于设置 Redis 连接密码。如果配置了连接密码,客户端连接 Redis 时需要通过 密码认证。 |
maxmemory | 最大内存限制配置项Maxclients | 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会尝试清除已到期或即将到期的 Key,当此方法处理 后,若仍然到达最大内存设置,将无法再进行写入操作,但可以进行读取操作。 |
appendfilename | appendonly.aof | 指定 AOF 持久化时保存数据的文件名,默认为 appendonly.aof。 |
glueoutputbuf | yes | 设置向客户端应答时,是否把较小的包合并为一个包发送,默认开启状态。 |
Tcp-backlog | 设置tcp的backlog,backlog实际上是一个链接队列,backlog队列总和=未完成三次握手队列 + 已经完成三次握手队列。 在高并发环境下你须要一个高backlog值来避免慢客户端链接问题。注意Linux内核会将这个值减少到/proc/sys/net/core/somaxconn的值,因此须要确认增大somaxconn和tcp_max_syn_backlog两个值来达到想要的效果 | |
Tcp-keepalive | 0 | 单位为秒,若是设置为0,则不会进行Keepalive检测,建议设置成60 |
想全面了解配置选项,可以参考官方网站相关文档:点击前往。