这是我参与8月更文挑战的第 8 天,活动详情查看:8月更文挑战
本章重点介绍 redis 的高级应用,如应用于要求不是太严格的基于 发布-订阅模型 的消息队列;如对多条 redis 指令进行事务化管理以提高效率
我的 redis 系列,感兴趣的朋友也可以来看看
本章主要是介绍日常中使用频率较高的配置项,会以 命令 + 默认配置值 的方式进行解释,使用的配置文件为 redis.windows.conf,位于 redis 文件夹的根目录下
include c:\path\to\other.conf
引入公共配置文件,适用于在需要启动多个 redis 实例的情况下,如做 redis 集群,大部分参数会是固定的,仅有小部分需要根据实例去修改,如 port
bind 127.0.0.1
默认情况,如果未使用 bind 命令,redis 默认会监听所有可用的端口;如果需要限定多个白名单 ip 可以使用 redis 服务,我们可是这么使用 bind 192.168.0.1 192.168.0.2
redis 的默认配置为 bind 127.0.0.1,即仅限本机连接 redis 服务实例
protected-mode yes
保护模式,默认开启
如果在未使用 bind 命令配置白名单,以及未设置访问的密码时,会仅限本地客户端访问
requirepass your-password
指定 redis 的登录模块,默认配置为免密登录
port 6379
redis 默认配置的端口
如果端口指定为 0,则 redis 不会监听 tcp 的套接字
timeout 0
当客户端空闲 n 秒后关闭连接(0为禁用)
tcp-keepalive 0
当值 time > 0 时,服务端会以给定的 second 为周期,去向客户端发送 TCP acks,这样可以得知客户端的存活状态,如需要配置,建议调整 time 为 60,单位是 s
TCP ASK:可以简单的理解为服务端向客户端发送了一个特殊格式的消息包(类似于心跳包),客户端需要回复服务端表示收到该消息,即告知到服务端 “我还活着”
loglevel notice
配置日志的级别,一共有 4 种
- debug,很多信息,对开发/测试很有用
- verbose,很多很少有用的信息,但不像调试级别那样乱七八糟
- notice,稍微冗长,可能是生产中需要的
- warning,只记录非常重要/关键的消息
logfile ""
指定日志文件名。还可以使用“ stdout”强制 Redis 登录标准输出。
databases 16
设置 redis 的 db 库,默认设置为 16个。
客户端连接上 redis 后,默认会使用 db 0。
由于 redis 的特性是,连接上去后,可以随意切换不同的 db 进行操作,从一个应用管理的角度,建议不同的应用数据,使用不同的 redis 实例进行操作
在翻阅了 redis 的配置文件,没有发现可以修改默认的使用 db 的命令;即不管我们 db 库设置了多少,客户端连接后默认都会使用 db-0,客户端可以使用命令 select db 进行切换
save time change
在指定的 time 秒内,变更超过 n 次,就是触发保存操作,支持配置多组
系统默认配置 save 900 1; save 300 10; save 60 10000
dbfilename dump.rdb
redis 的数据存储文件,默认命名是 dump.rdb。
redis 在运行的时候,会先从这个文件读取到数据载入内存
dir ./
和上一个指令 dbfilename 配合使用,表示 redis 的 db 文件默认存放在当前目录下的 dump.rdb 内
在这篇文章中,提及到的配置项,基本上都是日常使用频率之高,多用用就会记得差不多,后续计划在更新 1-2 篇,将剩余的配置项全部整理出来,如本文未提及的 redis 主从配置,数据异步存储的策略 等