从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • JavaSE

  • JavaSenior

  • JavaEE

  • JavaWeb

  • Spring

  • 主流框架

    • Redis

      • Redis 系列教程介绍
      • Redis 介绍
      • Redis 的安装和启停
      • Redis 操作数据
      • Redis 客户端
      • Redis 命令返回值
      • 多数据库
      • Redis 中的事务
      • Redis 中 key 的过期时间
      • Redis 持久化数据
      • Redis 的配置
        • Redis 服务端的端口
        • 配置文件和启动参数
        • 动态修改 Redis 配置
        • 重命名命令
        • daemonize
        • 基本配置
        • 持久化的相关配置
        • 复制相关的配置
        • 安全相关配置
      • Java 连接 Redis
      • Redis 连接池
      • Redis 搭建集群
      • Redis 中的哨兵
      • Redis 中的安全
      • 监控 Redis
      • Redis 小实验
    • Mybatis

    • Lucene

    • Elasticsearch

    • MQ

    • MyCat

    • Lombok

  • SpringMVC

  • SpringBoot

  • Java
  • 主流框架
  • Redis
2023-08-18
目录

Redis 的配置

# 90.Redis 的配置

通过之前的学习,相信大家对 Redis 已经有一定的认知了,接下来我们讲解 Redis 的常用配置。

# Redis 服务端的端口

之前我们是这样启动 Redis 的:Redis 服务器默认会使用 6379 端口

$ redis-server
1

‍

为什么 Redis 的作者要用这个端口呢? 因为 6379 是手机键盘上 MERZ 对应的数字,MERZ 是一名意大利歌女的名字 ヾ(•ω•`)o

我们可以在启动时,通过 --port 参数可以自定义端口号:

$ redis-server --port 6380
1

或者在配置文件里指定:

port 6380
1

# 配置文件和启动参数

像持久化、端口等配置,也可以在启动 Redis 时通过指定参数指定的,由于可以配置的选项较多,通过启动参数设置这些选项并不方便,所以 Redis 支持通过配置文件来设置这些选项。

启用配置文件的方法是在启动时将配置文件的路径作为启动参数传递给 redis-server,如:

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

通过启动参数传递同名的配置选项,会覆盖配置文件中相应的参数,就像这样:

$ redis-server /path/to/redis.conf --loglevel warning
1

Redis 提供了一个配置文件的模板 redis.conf,位于源代码目录的根目录中。

# 动态修改 Redis 配置

我们还可以在 Redis 运行时通过 CONFIG SET 命令在不重新启动 Redis 的情况下动态修改部分 Redis 配置:

redis> CONFIG SET loglevel warning
OK
1
2

如上命令修改了 Redis 的日志级别。并不是所有的配置都可以使用 CONFIG SET 命令修改,更多可以参考附录 B

同样在运行的时候也可以使用 CONFIG GET 命令获得 Redis 当前的配置情况,如:

redis> CONFIG GET loglevel
1) "loglevel"
2) "warning"

redis> CONFIG GET port
1) "port"
2) "6379"
1
2
3
4
5
6
7

其中第一行字符串回复表示的是选项名,第二行即是选项值。 ‍ 还可以通过通配符获取所有配置:这里就不列出所有配置了

 CONFIG GET *
 1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "unixsocket"
  8) ""
  9) "logfile"
 10) ""
......
1
2
3
4
5
6
7
8
9
10
11
12

动态修改配置后,还可以将配置写入到配置文件里:

CONFIG REWRITE
1

# 重命名命令

Redis 支持在配置文件中将命令重命名,比如将 FLUSHALL 命令重命名成一个比较复杂的名字,以保证只有自己的应用可以使用该命令。就像这样:

rename-command FLUSHALL oyfekmjvmwxq5a9c8usofuo369x0it2k
1

如果希望直接禁用某个命令可以将命令重命名成空字符串:

rename-command FLUSHALL ""
1

# daemonize

daemonize 在英语中就是守护进程的意思。

如果想要后台启动,则需修改配置文件,daemonize no 改成 daemonize yes。

  • daemonize: yes redis 采用的是单进程多线程的模式。当 redis.conf 中选项 daemonize 设置成 yes 时,代表开启守护进程模式。在该模式下,redis 会在后台运行,并将进程 pid 号写入至 redis.conf 选项 pidfile 设置的文件中,此时 redis 将一直运行,除非手动 kill 该进程。
  • daemonize: no 当 daemonize 选项设置成 no 时,当前界面将进入 redis 的命令行界面,exit 强制退出或者关闭连接工具(putty, xshell 等)都会导致 redis 进程退出。

redis 配置文件的注释:

# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
# When Redis is supervised by upstart or systemd, this parameter has no impact.
daemonize no
1
2
3
4

‍

# 基本配置

讲讲一些常用的基本配置

logfile ""
#日志文件位置及文件名称, 默认值为 stdout,标准输出,若后台模式会输出到/dev/null

bind 0.0.0.0
#监听地址,可以有多个 如 bind 0.0.0.0 127.0.0.1

daemonize yes
#yes 启动守护进程运行,即后台运行,no 表示不启用


pidfile /var/run/redis.pid 
# 当 redis 在后台运行的时候,Redis 默认会把 pid 文件在在/var/run/redis.pid,也可以配置到其他地方。当运行多个 redis 服务时,需要指定不同的 pid 文件和端口


port 6379
# 指定 redis 运行的端口,默认是 6379


timeout 0
# 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接, 0 是关闭此设置


loglevel debug
# 指定日志记录级别,Redis 总共支持四个级别:debug、verbose、notice、warning,默认为 verbose


databases 16
#配置可用的数据库个数,默认值为 16,默认数据库为 0,数据库范围在 0-(database-1)之间
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 持久化的相关配置

RDB:

save 900 1
save 300 10
save 60 10000
#配置快照(rdb)促发规则,格式:save <seconds> <changes>
#save 900 1  900 秒内至少有 1 个 key 被改变则做一次快照
#save 300 10  300 秒内至少有 300 个 key 被改变则做一次快照
#save 60 10000  60 秒内至少有 10000 个 key 被改变则做一次快照

dbfilename  dump.rdb
#rdb 持久化存储数据库文件名,默认为 dump.rdb

stop-write-on-bgsave-error yes 
#yes 代表当使用 bgsave 命令持久化出错时候停止写 RDB 快照文件,no 则代表继续写

rdbchecksum yes
#开启 rdb 文件校验

dir "/etc"
#数据文件存放目录,rdb 快照文件和 aof 文件都会存放至该目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

AOF:

appendonly no
# 设置 AOF 持久化,yes 开启,no 禁用,开启后 redis 会把所接收到的每一次写操作请求都追加到 appendonly.aof 文件中,当 redis 重新启动时,会从该文件恢复出之前的状态。


appendfilename "appendonly.aof"
#设置 AOF 文件名

appendfsync everysec
# AOF 文件写策略,Redis 支持三种同步 AOF 文件的策略:
# no: 不进行同步,交给操作系统去执行 ,速度较快
# always: always 表示每次有写操作都调用 fsync 方法强制内核将该写操作写入到文件,速度会慢, 但是安全,因为每次写操作都在 AOF 文件中.
# everysec: 表示对写操作进行累积,每秒同步一次,折中方案.
# 默认是 "everysec",按照速度和安全折中这是最好的。



auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
#当AOF 文件增长到一定大小的时候 Redis 能够调用 BGREWRITEAOF 对日志文件进行重写,它是这样工作的:Redis 会记住上次进行些日志后文件的大小(如果从开机以来还没进行过重写,那日子大小在开机的时候确定)。
#基础大小会同现在的大小进行比较。如果现在的大小比基础大小大制定的百分比,重写功能将启动
# 同时需要指定一个最小大小用于 AOF 重写,这个用于阻止即使文件很小但是增长幅度很大也去重写 AOF 文件的情况
# 设置 percentage 为 0 就关闭这个特性
#auto-aof-rewrite-percentage 代表 AOF 文件每次重写文件大小(以百分数代表),100 表示百分之百,即当文件增加了 1 倍(100%),则开始重写 AOF 文件
#auto-aof-rewrite-min-size  设置最小重写文件大小,避免文件小而执行太多次的重写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

‍

# 复制相关的配置

‍

slaveof <masterip> <masterport>  
#设置该数据库为其他数据库的从数据库,设置当本机为 slave 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动从 master 进行数据同步

masterauth <master-password>
#主从复制中,设置连接 master 服务器的密码(前提 master 启用了认证)

repl-ping-slave-period 10
#从库会按照一个时间间隔向主库发送 PING 命令来判断主服务器是否在线,默认是 10 秒


repl-timeout 60
#设置主库批量数据传输时间或者 ping 回复时间间隔超时时间,默认值是 60 秒
# 一定要确保 repl-timeout 大于 repl-ping-slave-period

slave-priority 100
#当主库发生宕机时候,哨兵会选择优先级最高的一个称为主库,从库优先级配置默认 100,数值越小优先级越高
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 安全相关配置

requirepass 123465
#客户端连接认证的密码,默认为空,即不需要密码,若配置则命令行需使用 AUTH 进行认证

maxclients 10000
# 设置同一时间最大客户端连接数,4.0 默认 10000,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,
# 如果设置 maxclients 0,表示不作限制。
# 当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息

maxmemory 4gb
#设置最大使用的内存大小

maxmemory-policy noeviction
#设置达到最大内存采取的策略:
# volatile-lru -> 利用 LRU 算法移除设置过过期时间的 key (LRU: 最近使用 Least Recently Used )
# allkeys-lru -> 利用 LRU 算法移除任何 key
# volatile-random -> 移除设置过过期时间的随机 key
# allkeys-> random -> remove a random key, any key
# volatile-ttl -> 移除即将过期的 key(minor TTL)
# 4.0 默认 noeviction 代表不删除任何 key,只在写操作时候返回错误。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
上次更新: 2025/6/3 09:31:54
Redis 持久化数据
Java 连接 Redis

← Redis 持久化数据 Java 连接 Redis→

最近更新
01
学点统计学:轻松识破一本正经的胡说八道
06-05
02
2025 年 5 月记
05-31
03
《贫穷的本质》很棒,但可能不适合你
05-27
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式