04安全与主从

安全

Warning: since Redis is pretty fast an outside user can try up to 150k passwords per second against a good box. This means that you should use a very strong password otherwise it will be very easy to break.

由于Reids非常快,每秒可以尝试15W次密码;所以需要设置一个非常强壮的密码

开启密码认证

redis.conf

requirepass 123456

client 认证

  • redis-cli -a password

    • image-20221205160634371
  • redis-cli

    • auth password
    • image-20221205160658350
  1. 在连接的同时进行认证
  2. 在连接之后再进行认证

主从

、Redis 通过复制支持高可用和故障恢复;

Redis主从运行副本Redis实例精准拷贝Master实例;副本Redis会在连接断开时自动重连Mater并且尝试精准复制Master无论master中发生了什么操作

Redis使用三个主要的机制确保其工作

  • 当master和副本实例之间连接良好时,master通过发送命令流到副本实例来复制在数据集上的更新结果确保副本更新;
  • 当master和副本之间连接断开(网络错误或超时等),副本会重新连接并尝试执行特殊的同步(增量同步):只同步断连时间段内更新数据的命令流
  • 当无法增量同步时,副本会请求master进行全量同步:master会创建一个全部数据的快照然后继续发送修改数据集的命令流

事务

multi

开启事务

exec

执行事务

discard

取消事务

乐观锁

watch

watch key

监视key是否修改,如果修改事务中的操作将失败

watch与当前连接相关连,存在于整个连接中;执行 exec discard unwatch 及断开连接都会清除连接中的监视;

持久化机制

redis的持久化机制有两种:

  • RDB snapshotting
    • 以指定间隔的时间点对database进行快照
  • AOF Append-only
    • 记录服务器每次收到的写操作
    • 这些操作可以在redis服务启动时重放重建原始的databse
  • No Persistence
    • 完全禁止持久化,用于缓存
  • RDB+AOF
    • 组合RDB和AOF

RDB

  • 是一个小巧的基于时间点的数据快照文件,它代表了redis中的数据
  • RDB可以完美地用于数据备份;例如每一个小时备份一次前24h的数据;每天备份一次前30天的数据
  • RDB可以方便地用于灾难恢复(文件小巧,可以被传输)
  • 对于一个很大的database,相比于AOF,RDB可以非常快速地重启
  • RDB可能存在数据丢失(最后一次写入RDB到redis宕机这一段时间的数据)
  • RDB需要fork一个子进程来操作持久化,如果数据较大且CPU性能较差时可能导致redis短时间的停止服务
posted @ 2024-04-20 12:56  Dreamsrj  阅读(9)  评论(0)    收藏  举报