用html做的游戏网站,动漫做h免费网站有哪些,网页设计案例教程杨松答案,河北唐山 网站建设redis知识点 redis持久化redis 订阅发布模式redis主从复制哨兵模式redis雪崩#xff0c;穿透缓存击穿#xff08;请求太多#xff0c;缓存过期#xff09;缓存雪崩 redis持久化
redis是内存数据库#xff0c;持久化有两种方式#xff0c;一种是RDB#xff08;redis dat… redis知识点 redis持久化redis 订阅发布模式redis主从复制哨兵模式redis雪崩穿透缓存击穿请求太多缓存过期缓存雪崩 redis持久化
redis是内存数据库持久化有两种方式一种是RDBredis database一种是AOF(append only file)。 rdb的持久化方式是定期将redis内存内容写入rdb临时文件fork子进程通过子进程来写文件主进程接着执行redis业务写入完成后替换以前的快照文件。保存的文件一般是dump.rdb。恢复是重启redis时数据被自动恢复。 aof的持久化是通过对执行的每条命令存取日志文件将redis执行过程中的每条命令记录下来。恢复时读取该文件将每条redis命令重新执行以达成数据的恢复。
aof持久化的效率比rdb的效率低文件也比rdb大修复速度也比较慢。但是因为是每条命令都记录实时性比较好基本不会丢命令。
如果同时开启两种持久化方式则优先使用aof方式恢复
redis 订阅发布模式
一个redis cli订阅某个频道通过SUBSCRIBE 命令 如下
redis 127.0.0.1:6379 SUBSCRIBE redisChat
Reading messages… (press Ctrl-C to quit)
“subscribe”“redisChat”(integer) 1
其他redis cli往此频道发消息如下
redis 127.0.0.1:6379 PUBLISH redisChat “Redis is a great caching technique”
(integer) 1
redis 127.0.0.1:6379 PUBLISH redisChat “Learn redis by mszlu.com”
(integer) 1
订阅者的客户端会显示如下消息
“message”“redisChat”“Redis is a great caching technique”“message”“redisChat”“Learn redis by mszlu.com”
可以实现简单的消息同步
redis主从复制
将一台redis的数据复制到另一台redis前者称为主节点后者称为备节点 作用
数据冗余是持久化之外的一种数据冗余方式故障恢复主节点出问题由从节点提供服务实现快速故障恢复负载均衡主节点负责写从节点负责读读比较多时候可以让多个从节点负载读操作是哨兵模式和集群能够实施的基础 复制有全量同步和增量同步全量同步是在从redis连接主redis时触发
哨兵模式 哨兵是一个独立的进程此进程通过向redis实例发消息看有没有响应来判断redis是否故障哨兵检测到master挂了首先会选一个slave节点将他变为主节点然后通过发布订阅模式通知从节点重新选主
多哨兵模式 多个哨兵互相监控如果多个哨兵都发现主节点故障才会选出一个哨兵进行failover
redis雪崩穿透
缓存穿透redis中都没有数据程序都去sql中查造成sql压力 解决方法1 布隆过滤器 对查询的请求规则做一次过滤过滤基准是对所有可能的查询参数先以hash方式存储布隆过滤器不符合要求的请求直接扔掉。 解决方法2 缓存空值
缓存击穿请求太多缓存过期
缓存击穿是指一个 key 非常热点在不停的扛着大并发大并发集中对这一个点进行访问当这个 key 在失效的瞬间持续的大并发就穿破缓存直接请求数据库就像在一个屏障上凿开了一个洞。
解决方案1设置热点数据永不过期
解决方案2加互斥锁将高并发的压力转移到分布式锁上
缓存雪崩
缓存雪崩是指在某一个时间段缓存集中过期失效。
产生雪崩的原因之一比如马上就要双十二零点很快就会有一波抢购这波商品时间比较集中的放在了缓存假设缓存一个小时。那么到了凌晨一点钟的时候这批商品的缓存就都会过期了。而对这批商品的访问查询都落到数据库上对于数据库而言就会产生周期性的压力波峰。于是所有的请求都会到达存储层存储层的调用量会暴增造成存储层也回掉的情况。