likes
comments
collection
share

【基础篇】Redis深入理解与实践指南(七)之Redis配置全解

作者站长头像
站长
· 阅读数 50

Redis是通过配置文件启动的,类似于Google Chrome,因此Redis可以通过不同的配置运行在不同的模式下,下面我们来详细了解Redis的各种配置:

单位大小写说明

单位

【基础篇】Redis深入理解与实践指南(七)之Redis配置全解

1、配置文件unit单位度大小写不敏感!

INCLUDES(引入其他配置)

扩展加载

【基础篇】Redis深入理解与实践指南(七)之Redis配置全解

就好比学习Spring、Import、Include

NETWORK(网络)

网络

bind 127.0.0.1      # 绑定的IP
​
protected-mode yes  # 保护模式
​
port 6379           # 端口设置

GENERAL(通用配置)

通用 GENERAL

daemonize yes       # 以守护进程的方式运行,默认是no,我们需要自己开启为yes!
​
pidfile /var/run/redis_6379.pid # 如果以后台的方式运行,我们就需要指定一个pid文件!# 日志
# Specify the server verbosity level.
# This can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably) # 生产环境
# warning (only very important / critical messages are logged)
loglevel notice
logfile ""  # 日志的文件位置名
databases 16    # 数据库的数量,默认是16个!(面试题常考:为什么Redis的数据库数量是16个?答案:redis.conf文件中默认的database参数是16.并且hashmap默认分组是16,这个跟hash算法的均匀分布有关系,考虑到大家的使用,不必自己再去改)
always-show-logo yes    # 是否总是显示logo

SNAPSHOTTING(快照)

快照 SNAPSHOTTING

持久化,在规定的时间内,执行了多少次操作,则会持久化到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 # 持久化如果出错,是否还需要继续工作!
​
rdbcompression yes  # 是否压缩 RDB 文件,需要消耗一些CPU资源!
​
rdbchecksum yes # 保存RDB文件的时候,进行错误的校验!dir ./  # RDB文件的保存目录

REPLICATION (复制)

REPLICATION (主从)复制 ,我们后面会讲到主从复制的时候再进行讲解

# 配置主从复制主节点
replicaof 127.0.0.1 6379
# 配置从节点连接密码(主从节点密码保持一致)
requirepass 123456
# 配置主节点redis登录密码
masterauth 123456

SECURITY(安全)

安全 SECURITY

可以在这里设置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  # 设置完成后再次使用命令操作redis同时没有鉴别权限
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456 # 使用密码进行登录即可!
ok
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"

CLIENTS(客户端)

客户端(限制) CLIENTS

maxclients 10000    # 设置能连接上redis的最大客户端数量
​
maxmemory <bytes>   # redis配置最大的内存容量
​
maxmemory-policy noeviction # 内存到达上限之后的处理策略.
# 设置方式 
config set maxmemory-policy volatile-lru # 默认的过期策略是 volatile-lru 。
maxmemory-policy 六种方式
1volatile-lru:只对设置了过期时间的key进行LRU(默认值) 
2、allkeys-lru : 删除lru算法的key   
3volatile-random:随机删除即将过期key   
4、allkeys-random:随机删除   
5volatile-ttl : 删除即将过期的   
6、noeviction : 永不过期,返回错误

附录:内存满了的四种处理策略 循环存储:单个文件空间大小设置上限,循环覆盖; 自动删除:空间满的时候进行自动化删除; 定期压缩转存:定期对历史文件进行压缩转存; 手工维护:人工定时检查,删除或者转存不需要的文件;

APPEND ONLY MODE(数据文件记录模式)

APPEND ONLY MODE AOF配置

appendonly no   # 默认是不开启aof模式的,在大部分的情况下,rdb完全够用了!
appendfilename "appendonly.aof" # 持久化文件的名字# appendfsync always    # 没修改都会 sync,消耗性能
appendfsync everysec    # 每秒执行一次 sync,可能会丢失这1s的数据
# appendfsync no        # 不执行 sync,这个时候操作系统自己同步数据,速度最快!

关于Redis持久化的详细配置和用法,我们到后面持久化章节来进行了解,下一节有关Redis的发布-订阅模式的内容:

欢迎关注白羊🐏,感谢观看ヾ(◍°∇°◍)ノ゙

转载自:https://juejin.cn/post/7132478218333847566
评论
请登录