1 Star 0 Fork 552

Leader / CS-Wiki

forked from 小牛肉 / cs-wiki 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
7-Redis配置文件详解.md 4.88 KB
一键复制 编辑 原始数据 按行查看 历史
小牛肉 提交于 2021-07-11 21:36 . 🥽 更新目录结构

📑 Redis 配置文件详解


Ubuntu 中通过命令 sudo apt-get install redis-server 安装的 Redis,默认的配置文件在 etc/Redis/redis.conf 中,可以通过 sudo vim /etc/Redis/redis.conf 来打开并进行编辑。

该配置文件中的相关配置项如下:👇

1. 网络相关

bind 127.0.0.1 # 绑定的主机地址,如果需要允许外网访问,需要将此行注释,或者改为 bind 0.0.0.0

protected-mode yes # 保护模式

port 6379 # 指定 Redis 监听端口,默认端口为 6379

timeout 300	# 当客户端闲置多长秒后关闭连接,如果指定为 0 ,表示关闭该功能

2. 守护进程

daemonize yes # 以守护进程的方式运行,默认是 no,我们需要自己开启为 yes

# 当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件,可以通过 pidfile 指定
pidfile /var/run/redis.pid

3. 日志

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

logfile "" # 日志的文件位置名

# 日志记录方式,默认为标准输出,如果配置 Redis 为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给 /dev/null
logfile stdout

4. RDB 配置

持久化,在规定的时间内,执行了多少次操作,则会持久化到文件 .rdb. aof

redis 是内存数据库,如果没有持久化,那么数据断电及失

# 如果900s内,如果至少有一个1 key进行了修改,我们及进行持久化操作
save 900 1

# 如果300s内,如果至少10 key进行了修改,我们就进行持久化操作
save 300 10

# 如果60s内,如果至少10000 key进行了修改,我们就进行持久化操作
save 60 10000

stop-writes-on-bgsave-error yes # 持久化如果出错,是否还需要继续工作

# 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大
rdbcompression yes 

rdbchecksum yes # 保存rdb文件的时候,进行错误的检查校验

dir ./ # rdb 文件保存的目录

5. 安全

可以在这里设置redis的密码,默认是没有密码

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config get requirepass # 获取redis的密码
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass "123456" # 设置redis的密码
OK
127.0.0.1:6379> config get requirepass # 发现所有的命令都没有权限了
(error) NOAUTH Authentication required.
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456 # 使用密码进行登录!
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"

设置密码后可使用如下命令进行登录:

redis-cli -a 密码

6. 限制

databases 16 # 数据库的数量,默认是 16 个数据库

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

# 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区
maxmemory <bytes> 

7. AOF 配置

# 指定是否在每次更新操作后进行日志记录,Redis 在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis 本身同步数据文件是按上面保存条件来同步的,所以有的数据会在一段时间内只存在于内存中。
# 默认为 no,即默认使用rdb方式持久化的,在大部分所有的情况下,rdb完全够用
appendonly no 

# 指定更新日志文件名(持久化的文件的名字),默认为 appendonly.aof
appendfilename "appendonly.aof" 

# 指定更新日志条件,共有 3 个可选值:
 - no:不执行 sync,表示等操作系统进行数据缓存同步到磁盘(快)
 - always:表示每次更新操作后手动调用 fsync() 将数据写到磁盘(慢,安全)
 - everysec:表示每秒同步一次(折中,默认值),可能会丢失这1s的数据
appendfsync everysec 

📚 References

Java
1
https://gitee.com/mmbuy_admin/CS-Wiki.git
git@gitee.com:mmbuy_admin/CS-Wiki.git
mmbuy_admin
CS-Wiki
CS-Wiki
master

搜索帮助