redis的总结

redis如何保证持久化

通过AOF 和RDB

日常生产以AOF和RDB结合使用

RDB 是以快照的形式, 每隔一段时间 记录一下快照, 记录到DB文件中, 默认是 十五分钟 一次, 五分钟十次 一分钟一万次改动, 都回生成RDB文件

实际生产, 会将RDB文件备份到其他服务中.

优点: 操作较快, 以内存快照的形式恢复,.

缺点: 以一段时间出发内存快照, 会造成数据的丢失

AOF 以日志的形式记录redis的操作, 记录到appendonly.aof文件中

优点: 记录日志较全,

缺点: 记录占用资源较大, 如果因为网络波动, 导致服务器短暂失效, AOF恢复耗时较长, 比较消耗资源 ,

主从复制:(读写分离,容灾恢复)

slave 链接到master时, 会发送一个snyc的命令

当master接到snyc 启动存盘进程 搜集所有修改数据,整合到一个数据集, 全部同步到slave上面

全量复制: 第一次链接到master会执行全量复制

增量复制: 之后都执行增量复制, 将修改的数据,同步到slave

一主两从 ,

薪火相传 , a(master)-b(slave,master)-c(slave)

反客为主 , 当master挂掉之后, slave会接过master将自己升级为master,

哨兵机制. 当master挂掉之后, slave会进行一个选举, 选举出一个master 然后将自己升级为master

缓存的雪崩:

某一时刻内, 缓存内的大量数据 集中失效, 请求访问就会去数据库查询, 造成数据库的压力,

解决方案, 避免大量数据同时失效, 再失效时间后加上一个随机值, 来解决.

缓存击穿: 当请求访问某一个数据时, 发现redis中数据失效, 然后这个请求会去访问数据库,.

解决方案: 加分布式互斥锁, 然后当用户请求过来时, 发现数据不存在, 让用户再一次在redis上查询, 如果还不存在, 那就去访问数据库, 同时将访问的数据写在redis上

后面的请求过来时就可以直接在redis上访问到了

缓存穿透: 恶意访问redis和mysql中不存在的数据,

解决方案: 布隆过滤器: 我理解是二进制的一个数组文件, 每次存数据时用hash值来 给数据的下标 标位1 , 当请求来查询时, 先

判断查询数据的下标值是否存在, 如果不存在,那就不查询redis和mysql

redis为什么快:

纯内存操作,

单线程操作, 避免了上下文的一个频繁切换.

采用了非阻塞的I/O多路复用的机制 将所有的请求加入一个线程中. 使用事务控制器, 将出口锁死, 从外边取数据.

redis过期策略以及内存 淘汰机制:

定期删除+惰性删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值