Redis安全策略详解
Redis 详解 安全策略
2023-06-13 09:19:48 时间
产生的背景(原因):
缓存穿透是指使用不存在的key进行大量的高并发查询,导致缓存无法命中,每次请求都要都要穿透到后端数据库查询,使得数据库的压力非常大,甚至导致数据库服务压死;
解决方案:
接口层实现api限流、用户授权、id检查等; 从缓存和数据库都取不到数据的话,一样将数据库空值放入缓存中,设置30s有效期避免使用同一个id对数据库攻击压力大; 布隆过滤器高并发情况下查询的一个key突然过期
产生背景(原因):
在高并发的情况下,当一个缓存key过期时,因为访问该key请求较大,多个请求同时发现缓存过期,因此对多个请求同时数据库查询、同时向Redis写入缓存数据,这样会导致数据库的压力非常大;
解决方案:
使用分布式锁保证在分布式情况下,使用分布式锁保证对于每个key同时只允许只有一个线程查询到后端服务,其他没有获取到锁的权限,只需要等待即可;这种高并发压力直接转移到分布式锁上,对分布式锁的压力非常大。
使用本地锁使用本地锁与分布式锁机制一样,只不过分布式锁适应于服务集群、本地锁仅限于单个服务使用。
设置热点数据永不过期或者异步延长过期时间;
高并发情况下大量的key 集中失效
产生背景(原因):
缓存雪崩指缓存服务器重启或者大量的缓存集中在某个时间段失效,突然给数据库产生了巨大的压力,甚至击垮数据库的情况。
解决思路:对不用的数据使用不同的失效时间,加上随机数
布隆过滤器布隆过滤器适用于判断某个数据是否在集合中存在,不一定百分百准备, Bloom Filter基本实现原理采用位数组与联合函数一起实现;
布隆过滤器最大的问题:就是可能会存在一个误判的问题,如果向误判概率越低,则二进制数组会越大,同时也会非常占用空间
基于布隆过滤器解决缓存穿透问题maven依赖
dependencygroupId com.google.guava /groupId
artifactId guava /artifactId
version 22.0 /version
/dependency
测试代码
public class BlongTest {/**
* 在布隆中存放100万条数据
*/
private static Integer size = 1000000;
public static void main(String[] args) {
BloomFilter Integer integerBloomFilter = BloomFilter.create(Funnels.integerFunnel(), size, 0.01);
for (int i = 0; i size; i++) {
integerBloomFilter.put(i);
}
// 从布隆中查询数据是否存在
ArrayList Integer strings = new ArrayList ();
for (int j = size; j size + 10000; j++) {
if (integerBloomFilter.mightContain(j)) {
strings.add(j);
}
}
System.out.println( 误判数量: + strings.size());
}
解决缓存击穿代码
到此这篇关于Redis安全策略详解的文章就介绍到这了,更多相关Redis安全内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Redis安全策略详解
相关文章
- redis常用命令及详解_Redis数组添加命令
- Go-连接Redis-学习go-redis包详解编程语言
- Redis实际应用场景详解(redis实际用法)
- 详解 Redis:原理、特性及应用场景(redis原理详解)
- Redis详解:掌握高效存储与缓存技巧(redis详解)
- 优秀的 Redis 命令参考中文版,详解 Redis 数据结构与命令,让你轻松驾驭 Redis!(redis命令参考中文版)
- Redis快速入门指南(redis入门详解)
- 时间荏苒,能精通Redis一段不期而遇的奋斗史(精通redis得多久)
- 技术答题游戏再升级借助Redis技术(答题游戏 结合redis)
- 本地项目实现Redis功能(本地项目配置redis)
- 从数据库深度持久化到Redis中(数据库持久化到redis)
- Web与Redis哪一种优胜(web和redis哪种好)
- TP框架与Redis的连接方式详解(tp怎么连接redis)
- 学习Redis基本知识和技能你要了解什么(学redis需要什么基础)
- 研究Redis默认快照方式的有效性(redis默认快照方式)
- Redis大幅提升高并发性能的实践解析(redis高并发详解)
- Redis集群架构深度剖析(redis集群架构详解)
- Redis集群操作详解从安装到配置(redis 集群操作文档)
- Redis集群监控精准视角详解(redis 集群怎么监控)
- Redis配置参数解析深入探究其复杂灵活性(redis配置参数详解)
- Redis连接池配置深度剖析(redis连接池配置详解)
- Redis连接顺利不再有错(redis连接不报错)
- Redis RDB文件格式详解(redis 解析rdb)
- Redis技术快速入门视频详解(redis视频介绍)
- Redis灵活应用自定义注解解析(redis自定义注解详解)
- 红色的证明Redis缓存数据测试(redis缓存数据测试)
- 数据高效存取利用Redis缓存加速数据存取(redis 缓存如何实现)