Redis十分钟进阶实战教程(进阶篇)

上回书说到:零基础入门Redis实战教程(基础篇)
在这里插入图片描述

五、Redis.conf详解

启动的时候,就通过选择特定的配置文件来启动!
(一)配置文件 unit单位 可以使得对大小写不敏感!

在这里插入图片描述
(二)包含区域INCLUDES(引入其他配置文件)
在这里插入图片描述
就是好比我们学习Spring中的@Improt

(三)网络配置(连接信息)

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

(四)通用 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 个数据库
always-show-logo yes # 是否总是显示LOGO

(五) 持久化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 # 持久化如果出错,是否还需要继续工作!

rdbcompression yes # 是否压缩 rdb 文件,需要消耗一些cpu资源!

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

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

(六)REPLICATION 复制(主从复制)

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

(七)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 # 发现所有的命令都没有权限了
(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

(八)CLIENTS限制 (客户端数,内存大小,内存策略)

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

(九)APPEND ONLY 模式 (AOF配置)

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

六、Redis持久化

面试和工作,持久化都是重点!
Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能!

(一)RDB(Redis DataBase)
1、什么是RDB
指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快
照文件直接读到内存里。
主从复制中,rdb就是备用了!从机上面!

2、过程详情

在这里插入图片描述

1、父进程会单独创建(fork)一个子进程来进行持久化
2、当一个新的请求到来时,由父进程进行处理并修改内存信息
3、子进程根据父进程的修改后的内存生成RDB临时文件(快照文件)
4、子进程再用这个临时文件替换上次持久化好的文件。

有时候在生产环境我们会将这个文件进行备份
rdb保存的文件是dump.rdb,可以在我们的配置文件中进行快照的配置
在这里插入图片描述
3、触发机制
(1)自动触发:满足配置 redis.conf 文件中 SNAPSHOTTING 下的save的属性
在这里插入图片描述

(2)手动触发:
①执行save命令
②执行 flflushall 命令,也会触发我们的rdb规则!
③执行flushdb命令退出redis,也会产生 rdb 文件!

RDB文件:
在这里插入图片描述
4、恢复机制
如何恢复rdb文件!
(1)只需要将rdb文件放在我们redis启动目录就可以,redis启动的时候会自动检查dump.rdb 恢复其中
的数据!
(2)查看需要存在的位置

127.0.0.1:6379> config get dir
1) "dir"
2) "/usr/local/bin" # 如果在这个目录下存在 dump.rdb 文件,启动就会自动恢复其中的数据

几乎就他自己默认的配置就够用了,但是我们还是需要去学习!

5、RDB优缺点
优点:
(1)整个过程中,主进程是不进行任何IO操作的。这就确保了极高的性能。
(2)如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。
缺点:
(1)进程操作需要一定的时间间隔!如果redis意外宕机了,这个最后一次修改数据就没有的了!
(2)fork进程的时候,会占用一定的内容空间

(二)AOF(Append Only File)
1、AOF是什么
Redis的第二种持久化机制,原理是将我们的新的命令追加ADF文件,恢复的时候就把这个文件中的操作全部在执行一遍!
2、工作机制

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值