游乐游手机版
首页/数据库/文章详情

Redis配置参数详解与优化设置指南

时间:2026-08-14 17:36
Redis 的配置文件一般位于安装目录下,默认文件名为 redis conf;如果是在 Windows 系统中,对应的配置文件名通常为 redis windows conf。 你可以通过 CONFIG 命令查看、查询或动态设置 Redis 配置项。 语法 Redis 的 CONFIG 命令语法格式如

Redis 的配置文件一般位于安装目录下,默认文件名为 redis.conf;如果是在 Windows 系统中,对应的配置文件名通常为 redis.windows.conf。

Redis 配置

你可以通过 CONFIG 命令查看、查询或动态设置 Redis 配置项。

语法

Redis 的 CONFIG 命令语法格式如下:

redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

实例

redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"

使用 * 通配符可以获取当前 Redis 的全部配置项:

实例

redis 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) "/var/run/redis.pid"
 13) "maxmemory"
 14) "0"
 15) "maxmemory-samples"
 16) "3"
 17) "timeout"
 18) "0"
 19) "tcp-keepalive"
 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-entries"
 30) "512"
 31) "list-max-ziplist-value"
 32) "64"
 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-sla ve-period"
 56) "10"
 57) "repl-timeout"
 58) "60"
 59) "repl-backlog-size"
 60) "1048576"
 61) "repl-backlog-ttl"
 62) "3600"
 63) "maxclients"
 64) "4064"
 65) "watchdog-period"
 66) "0"
 67) "sla ve-priority"
 68) "100"
 69) "min-sla ves-to-write"
 70) "0"
 71) "min-sla ves-max-lag"
 72) "10"
 73) "hz"
 74) "10"
 75) "no-appendfsync-on-rewrite"
 76) "no"
 77) "sla ve-serve-stale-data"
 78) "yes"
 79) "sla ve-read-only"
 80) "yes"
 81) "stop-writes-on-bgsa ve-error"
 82) "yes"
 83) "daemonize"
 84) "no"
 85) "rdbcompression"
 86) "yes"
 87) "rdbchecksum"
 88) "yes"
 89) "activerehashing"
 90) "yes"
 91) "repl-disable-tcp-nodelay"
 92) "no"
 93) "aof-rewrite-incremental-fsync"
 94) "yes"
 95) "appendonly"
 96) "no"
 97) "dir"
 98) "/home/deepak/Downloads/redis-2.8.13/src"
 99) "maxmemory-policy"
100) "volatile-lru"
101) "appendfsync"
102) "everysec"
103) "sa ve"
104) "3600 1 300 100 60 10000"
105) "loglevel"
106) "notice"
107) "client-output-buffer-limit"
108) "normal 0 0 0 sla ve 268435456 67108864 60 pubsub 33554432 8388608 60"
109) "unixsocketperm"
110) "0"
111) "sla veof"
112) ""
113) "notify-keyspace-events"
114) ""
115) "bind"
116) ""

编辑配置

你既可以直接修改 redis.conf 配置文件,也可以使用 CONFIG set 命令在线修改 Redis 配置参数。

语法

CONFIG SET 命令的基本语法如下:

redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

实例

redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
OK
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"

参数说明

下面是 redis.conf 中常见配置项的说明:

序号配置项说明
1
daemonize no
Redis 默认不会以守护进程方式运行,可以通过该配置项进行修改,设置为 yes 即可启用守护进程模式(Windows 不支持守护线程,因此该配置通常为 no)
2
pidfile /var/run/redis.pid
当 Redis 以守护进程模式运行时,默认会把 pid 写入 /var/run/redis.pid 文件,也可以通过 pidfile 自定义指定路径
3
port 6379
用于指定 Redis 的监听端口,默认端口是 6379。作者曾在一篇博文中解释过为什么选择 6379 作为默认端口:因为 6379 在手机按键上对应 MERZ,而 MERZ 来自意大利歌女 Alessia Merz 的名字
4
bind 127.0.0.1
用于绑定 Redis 服务监听的主机地址
5
timeout 300
用于设置客户端空闲多少秒后自动关闭连接,如果设置为 0,则表示禁用该功能
6
loglevel notice
指定 Redis 日志记录级别。Redis 共支持四个级别:debug、verbose、notice、warning,默认值为 notice
7
logfile stdout
用于指定日志记录方式,默认输出到标准输出。如果 Redis 以守护进程方式运行,而这里仍配置为标准输出,则日志会被发送到 /dev/null
8
databases 16
设置 Redis 数据库数量,默认使用数据库 0,可以通过SELECT 命令在当前连接中切换并指定数据库 id
9
sa ve  

Redis 默认配置文件中提供了三个条件:

sa ve 900 1

sa ve 300 10

sa ve 60 10000

它们分别表示三种阈值设置:900 秒(即 15 分钟)内发生 1 次修改、300 秒(5 分钟)内发生 10 次修改,以及 60 秒内发生 10000 次修改。

指定在多长时间内发生多少次更新操作后,将数据同步到数据文件中,这些条件可以同时配合使用
10
rdbcompression yes
指定将数据存储到本地数据库时是否启用压缩,默认值为 yes。Redis 使用 LZF 压缩算法,如果为了节省 CPU 时间也可以关闭该选项,但数据库文件体积会明显增大
11
dbfilename dump.rdb
指定本地数据库文件名称,默认值是 dump.rdb
12
dir ./
指定本地数据库文件的存放目录
13
sla veof  
当当前实例作为 sla ve 服务时,用于设置 master 服务的 IP 地址和端口。Redis 启动后会自动从 master 节点同步数据
14
masterauth 
当 master 服务启用了密码保护时,sla ve 服务连接 master 时需要提供对应密码
15
requirepass foobared
设置 Redis 的连接密码。如果启用了该配置,客户端连接 Redis 后需要通过 AUTH 命令进行身份验证,默认状态下为关闭
16
 maxclients 128
设置同一时间允许的最大客户端连接数,默认不限制。Redis 可同时打开的客户端连接数受 Redis 进程可打开的最大文件描述符数量影响。如果设置 maxclients 0,表示不作限制。当客户端连接数达到上限时,Redis 会拒绝新的连接,并返回 max number of clients reached 错误信息
17
maxmemory 
指定 Redis 的最大内存限制。Redis 启动时会先将数据加载到内存中,当达到最大内存后,会优先尝试清除已过期或即将过期的 Key。如果处理后仍达到最大内存限制,将不能继续执行写入操作,但仍然可以读取数据。Redis 新的 vm 机制中,Key 会存放在内存里,Value 会存放到 swap 区
18
appendonly no
指定是否在每次更新操作后记录日志。Redis 默认采用异步方式将数据写入磁盘,如果不开启该选项,在断电等异常情况下可能会丢失一段时间的数据。因为 redis 本身同步数据文件是按照上面 sa ve 条件执行的,所以部分数据会在一段时间内只存在于内存中。默认值为 no
19
appendfilename appendonly.aof
指定追加更新日志的文件名,默认值为 appendonly.aof
20
appendfsync everysec

指定更新日志的同步条件,共有 3 个可选值:

  • no:表示由操作系统负责将数据缓存同步到磁盘(速度快)
  • always:表示每次更新操作后手动调用 fsync() 将数据立即写入磁盘(速度慢,但更安全)
  • everysec:表示每秒同步一次(性能与安全性的折中,默认值)
21
vm-enabled no
指定是否启用虚拟内存机制,默认值为 no。简单来说,VM 机制会将数据分页存储,由 Redis 把访问量较少的页面,也就是冷数据,swap 到磁盘,而访问频繁的页面则由磁盘自动换入到内存中(后续文章中会进一步分析 Redis 的 VM 机制)
22
vm-swap-file /tmp/redis.swap
指定虚拟内存文件路径,默认值为 /tmp/redis.swap,多个 Redis 实例之间不能共享同一个文件
23
vm-max-memory 0
将所有大于 vm-max-memory 的数据写入虚拟内存。无论 vm-max-memory 设置得多小,所有索引数据都会保存在内存中(Redis 的索引数据就是 keys)。也就是说,当 vm-max-memory 设置为 0 时,实际上所有 value 都会存放到磁盘中。默认值为 0
24
vm-page-size 32
Redis 的 swap 文件被划分为多个 page,一个对象可以保存在多个 page 中,但同一个 page 不能被多个对象共享。vm-page-size 需要根据存储的数据大小来设置,作者建议:如果存储大量小对象,page 大小最好设置为 32 或 64bytes;如果存储的是大对象,则可以使用更大的 page;如果不确定,直接使用默认值即可
25
vm-pages 134217728
设置 swap 文件中的 page 数量。由于页表(一种表示页面空闲或使用状态的 bitmap)保存在内存中,因此磁盘上每 8 个 pages 会消耗 1byte 的内存。
26
vm-max-threads 4
设置访问 swap 文件的线程数量,通常不要超过机器 CPU 的核心数。如果设置为 0,那么所有对 swap 文件的操作都会串行执行,可能造成较长时间的延迟。默认值为 4
27
glueoutputbuf yes
设置在向客户端返回应答时,是否将较小的数据包合并后再发送,默认是开启状态
28
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
指定当元素数量超过一定范围,或者单个元素大小超过某个临界值时,采用一种特殊的哈希算法
29
activerehashing yes
指定是否启用激活重置哈希功能,默认开启(后面在介绍 Redis 哈希算法时会进一步说明)
30
include /path/to/local.conf
指定引入其它配置文件,可以让同一台主机上的多个 Redis 实例共用同一份基础配置文件,同时保留各自独立的特定配置
来源:https://www.runoob.com/redis/redis-conf.html
上一篇MongoDB高级索引优化技巧与使用指南 下一篇Redis发布订阅机制详解与使用场景优化
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Redis是什么:核心特性、架构与应用场景解析
数据库 · 2026-09-01

Redis是什么:核心特性、架构与应用场景解析

Redis是一款基于内存的键值型NoSQL数据库,以超高读写速度和丰富的数据结构著称。本文系统梳理Redis的核心特性、架构组成、性能优势及典型应用场景,并通过与Memcached、MySQL、MongoDB的对比,帮助开发者快速判断Redis是否适合当前业务需求。

Windows 安装 MongoDB 完整图文教程
数据库 · 2026-09-01

Windows 安装 MongoDB 完整图文教程

本文详细介绍在 Windows 系统上安装 MongoDB 的完整流程。从官网下载 MSI 安装包开始,逐步演示自定义安装路径、配置 Windows 服务、跳过 MongoDB Compass 等关键选项,并提供通过系统服务列表验证安装是否成功的方法,帮助开发者快速搭建本地 MongoDB 环境。

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动
数据库 · 2026-09-01

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动

本文详解在 Linux 系统下安装 MongoDB 的完整流程,涵盖依赖包安装、二进制包下载解压、环境变量配置、数据与日志目录创建及服务启动验证。通过标准化命令与路径说明,帮助开发者快速完成部署并确认服务状态。

MacOS安装MongoDB完整教程
数据库 · 2026-09-01

MacOS安装MongoDB完整教程

本文介绍在MacOS系统下安装MongoDB的完整流程,涵盖下载、解压、目录配置、环境变量设置及服务启动。通过明确的命令与参数说明,帮助开发者快速完成环境搭建并验证安装结果。

Ubuntu系统安装与配置Redis完整指南
数据库 · 2026-09-01

Ubuntu系统安装与配置Redis完整指南

本文详解在Ubuntu系统中安装Redis的两种主流方式:apt在线安装与源码编译安装。涵盖版本选择逻辑、服务启停与状态检查、连接验证方法,以及在线练习工具与桌面GUI客户端的对比与使用建议,帮助开发者快速搭建并验证Redis运行环境。