
Redis
文章平均质量分 59
ybb_ymm
从事多年java、python工作。文章、图片及内容仅是学习使用,如有侵权,请联系我,立即删除
展开
-
缓存之穿透、击穿、雪崩及其解决方法
缓存穿透:指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,进而给数据库带来压力。假如有人去使用不存在的key对我们进行高频攻击,就会出现我们数据库的压力暴增,从而导致崩溃,这就是缓存穿透现象。缓存击穿:指热点key在某个时间点过期的时候,而恰好在这个时间点对这个Key有大量的并发请求过来,从而大量的请求转移到了数据库侧。缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。原创 2023-03-06 16:19:07 · 374 阅读 · 0 评论 -
RedisTemplate操作String及Hash数据
单个key的删除(我们可以是封装自己的一个delete方法,然后将参数设置为key,在通过redisTemplate调用delete方法删除)多个key的删除(多个key删除则和上面的单key一样,只不过是在参数上设置为多个key的方式即可)这里的keys是指的多参数:public void deleteByKey(String ...keys)指定key失效时间(设置失效时间,我们自己定义的方法设置三个参数,分比为key,时间,单位《秒或分》)原创 2023-01-19 08:31:33 · 2665 阅读 · 0 评论 -
操作Redis客户端工具详解之功能介绍及配置
Jedis Jedis是Redis官方推出的一款面向java的客户端,提供了好多接口供java调用。虽然官方提供了客户端工具,但是很多爱好者,也提供了诸如:SRP、Jredis等工具类。但是效果没有jedis好,所以我们还是推荐jedisSpring Data Redis Spring Data Redis是spring提供的一款客户端工具,它本身是Spring家族的一员。所以,他对我们java程序员是很友好的,并且对redis底层的工具(Jedis)做了友好的高度封装。原创 2023-01-19 08:29:57 · 1193 阅读 · 0 评论 -
如何解决Redis中大key的问题?
上一篇我们说的Redis中大key是什么?造成哪些危害?如何筛选出来这些大key?以及如何删除他们?今天我们来看一下如何优雅的处理Redis中的大key问题:我们要想解决大key的问题,就得从大key的定义触发。大key的本质上就是value值过大!我们要向处理大key,只要将value优化即可!原创 2022-12-27 08:50:44 · 1702 阅读 · 0 评论 -
Redis大key问题解析
用unlink命令代替del命令来删除,这样Redis会将这个key放入到一个异步现成中进行删除,这样不会阻塞主线的运行。使用hscan命令,每次获取150个字段,在用hdel命令,每次删除一个字段。当一个大key过大, 自身会造成占用带宽较多,会连锁反应的引起这台服务器的其他服务的灾难。当我们删除一个大key的时候,会造成时间过长,会引发主从切换或者同步中断。当一个大key过大,会引起请求超时,这时,后面的任务便无法正常运行了。当读取大key的时候,会占用较多的内存,从而会导致内存溢出。原创 2022-12-27 08:46:35 · 865 阅读 · 0 评论 -
分布式缓存的四大痛点
但是带来好处的同时,也给我们带了了新的问题:缓存穿透、缓存击穿、缓存雪崩以及缓存一致性这么四个问题,也是分布式缓存的四大痛点!解决他也是很容易的,将我们的缓存设置不过期、过期时间分散,或者在请求的时候更新缓存的过期时间,这三种都可以很好的解决我们的问题。缓存穿透带来的危害就是,假如他一直请求,找不到这个数据,便会去请求数据库,不断的请求就会造成服务的性能故障,导致服务宕机。这里解决的方案我们也准备了,首先就是缓存做高可用,主从等等,另外也可以通过限流,当缓存出现故障,我们限制访问的流量来解决。原创 2022-12-25 09:37:02 · 721 阅读 · 0 评论