首页
归档
关于
Search
1
再谈使用IdentityServer实现ASP.NET Core Web API的认证与授权
21 阅读
2
C服务器端
15 阅读
3
EF 贪婪加载 , 延迟加载,显式加载
12 阅读
4
数据结构与算法
12 阅读
5
管道处理模型
9 阅读
软件设计师笔记
.Net
Java
数据库
PHP
运维
前端
Python
中间件相关
云原生
架构设计
Search
标签搜索
websocket
科技新闻
core
Bi8bo
累计撰写
266
篇文章
累计收到
2
条评论
首页
栏目
软件设计师笔记
.Net
Java
数据库
PHP
运维
前端
Python
中间件相关
云原生
架构设计
页面
归档
关于
搜索到
11
篇与
的结果
2025-04-03
Redis脑裂解决方案
一、哨兵(sentinel)模式下的脑裂如上图,1个master与3个slave组成的哨兵模式(哨兵独立部署于其它机器),刚开始时,2个应用服务器server1、server2都连接在master上,如果master与slave及哨兵之间的网络发生故障,但是哨兵与slave之间通讯正常,这时3个slave其中1个经过哨兵投票后,提升为新master,如果恰好此时server1仍然连接的是旧的master,而server2连接到了新的master上。数据就不一致了,基于setNX指令的分布式锁,可能会拿到相同的锁;基于incr生成的全局唯一id,也可能出现重复。有多少个redis slave就写多少个最小连接数量
2025年04月03日
5 阅读
0 评论
0 点赞
2025-04-03
Redis缓存雪崩解决方案
缓存雪崩 描述: 缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。和缓存击穿不同的是, 缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。解决方案:缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生。如果缓存数据库是分布式部署,将热点数据均匀分布在不同搞得缓存数据库中。设置热点数据永远不过期。
2025年04月03日
0 阅读
0 评论
0 点赞
2025-04-03
Redis缓存穿透解决方案
缓存穿透描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求。由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截;从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value对写为key-null,缓存有效时间可以设置短点,如30秒(设置太长会导致正常情况也没法使用)。这样可以防止攻击用户反复用同一个id暴力攻击
2025年04月03日
5 阅读
0 评论
0 点赞
2025-04-03
哨兵 Sentinel
暂无简介
2025年04月03日
4 阅读
0 评论
0 点赞
2025-04-03
Redis五大基本类型底层数据结构
暂无简介
2025年04月03日
3 阅读
0 评论
0 点赞
1
2
3