文章目录

  • Redis.conf详解
  • 单位
  • 包含,可以增加其他配置
  • 网络
  • 通用GENERAL
  • 快照SNAPSHOTTING
  • 复制REPLICATION
  • SECURITY
  • CLIENTS限制
  • APPEND ONLY MODE (aof)仅附加模式
  • Redis持久化
  • RDB
  • 触发机制:
  • **如何恢复`rdb`文件:**
  • rdb的优缺点
  • AOF(APPEND ONLY FILE)
  • 优缺点
  • Redis发布订阅
  • Redis主从复制
  • Redis缓存穿透和雪崩


Redis.conf详解

通过配置文件来启动

单位
  1. 对大小写不敏感
包含,可以增加其他配置

linux redis查看key linux查看redis配置文件_redis

网络
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 默认的数据库数量
always-show-logo yes 是否总是显示logo
快照SNAPSHOTTING

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

redis是内存数据库,如果没有进行持久化,那么数据库就会断电即使

save 900 1  如果900s内,至少有1key进行了修改,那么就进行持久化操作
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes 如果持久化失败,是否继续工作
rdbcompression yes  是否压缩 .rdb 文件,会消耗一些资源
rdbchecksum yes  保存文件时进行数据校验
dir ./  rdb文件保存目录,默认是当前目录
复制REPLICATION
SECURITY

可以设置redis密码,默认是没有密码的!

127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass 123456 设置密码
127.0.0.1:6379> config set requirepass 123456 取消密码
127.0.0.1:6379> auth 123456 输入密码登录
CLIENTS限制
# maxclients 10000 设置最大连接数
# maxmemory-policy noeviction 内存满了之后,如何操作   一般是删除掉没用的
APPEND ONLY MODE (aof)仅附加模式
appendonly no  默认不开启aof模式,默认使用rdb持久化方式,完全够用
appendfilename "appendonly.aof" 持久化文件的名字

# appendfsync always 每次修改都会 同步(sync)。消耗性能
appendfsync everysec 每秒执行一次 同步(sync)。可能会丢失这1S内的数据
# appendfsync no 不执行 同步 (sync)。这个时候操作系统自己同步数据,速度最快!

Redis持久化

RDB

redis是内存数据库,如果没有进行持久化,那么数据库就会断电即使

RDB(Redis DataBase)
redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入一个临时文件中,带持久化过程都结束了,在用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何io操作的。这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失,我们默认的就是RDB,一般情况下不需要修改这个配置。

rdb保存的文件是dump.rdb都是在快照中进行配置的,一旦触发了保存操作,就会生成dump.rdb

触发机制:
  1. save规则满足的情况下,会自动触发rdb规则
  2. 执行flushall命令,也会自动触发rdb规则
  3. 退出redis,也会自动触发rdb规则
    备份就会自动生成一个dump.rdb
如何恢复rdb文件:
  1. 只需要将rdb文件放在我们redis启动目录下就可以,redis启动的时候会自动检查dump.rdb恢复其中的数据
  2. 查看需要存在的位置
rdb的优缺点

优点:

  1. 适合大规模的数据恢复! dump.rdb
  2. 对数据的完整性要求不高

缺点:

  1. 需要一定的时间间隔进行操作!如果redis意外出错,最后一次修改的数据就没了
  2. fork进程会占用一定的空间

AOF(APPEND ONLY FILE)

以日志的形式记录每个写操作,将Redis执行过的所有指令记录下来,只许追加文件但不可以改写文件,redis启动之后会读取该文件重构数据,换言之,redis重启的话就根据日志内容将写指令从前到后执行一次以完成数据的恢复工作

linux redis查看key linux查看redis配置文件_mysql_02

开启AOF:默认是不开启的,我们需要手动进行配置 appendonly yes 重启,redis就可以生效

linux redis查看key linux查看redis配置文件_java_03


如果aof配置文件有错误,这时候启动会报错,

linux redis查看key linux查看redis配置文件_linux redis查看key_04

需要使用redis-check-rdb进行修复

linux redis查看key linux查看redis配置文件_linux_05


如果文件正常,重启就可以恢复

linux redis查看key linux查看redis配置文件_linux redis查看key_06

优缺点

优点:

  1. 每次修改都同步,文件的完整性会很好
  2. 每秒同步一次,可能丢失一秒的数据
  3. 从不同步,效率最高的

缺点:

  1. 相对于数据文件来说,aof 远远大于 rdb,修复的速度也比rdb慢!
  2. aof运行效率也要比rdb慢,所以我们redis默认的配置就是rdb持久化