首页 > 数据库 >redis的几种常见问题

redis的几种常见问题

时间:2024-08-09 16:31:20浏览次数:12  
标签:缓存 过期 redis 几种 常见问题 线程 key 数据

缓存穿透

redis缓存和数据库中没有相关数据
解决方案
对不存在的数据缓存到redis中,设置key,value值为null(不管是数据未null还是系统bug问题),并设置一个短期过期时间段,避免过期时间过长影响正常用户使用。
拉黑该IP地址
对参数进行校验,不合法参数进行拦截
布隆过滤器 将所有可能存在的数据哈希到一个足够大的bitmap(位图)中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。

缓存击穿

某一个热点key,在不停地扛着高并发,当这个热点key在失效的一瞬间,持续的高并发访问就击破缓存直接访问数据库,导致数据库宕机。
解决方案
设置热点数据"永不过期"
加上互斥锁:上面的现象是多个线程同时去查询数据库的这条数据,那么我们可以在第一个查询数据的请求上使用一个互斥锁来锁住它
,其他的线程走到这一步拿不到锁就等着,等第一个线程查询到了数据,然后将数据放到redis缓存起来。后面的线程进来发现已经有缓存了,就直接走缓存

缓存雪崩

雪崩是大面积的key缓存失效

标签:缓存,过期,redis,几种,常见问题,线程,key,数据
From: https://www.cnblogs.com/sitting-on-the-clouds/p/18350953

相关文章

  • redis数据结构
    redis数据类型 stringlisthashsetzsetHyperLogLogGEOBloomFilter(布隆过滤器)HyperLogLog基本概念:Redis在2.8.9版本添加了HyperLogLog结构。RedisHyperLogLog是用来做基数统计的算法,所谓基数,也就是不重复的元素。优点在输入元素的数量或者体积非常......
  • 如何关闭redis的自动清理缓存,声明式事务(含有redis)如何解决,redis setnx锁的使用。
    20240809一、解决redis数据被删除的方案1、发现问题2、解决注意!!二、声明式事务(当有redis的时候)1.先看代码2.@Transactional(rollbackFor=Exception.class)3.如何解决redis在事务里面,如何保证原子性和一致性3.1我们可以用trycatchfinally来实现3.2我们可以让red......
  • Redis笔记
    Redis(Remotedictionaryserver)开源的基于内存的数据存储系统可用于数据库、缓存、队列等各种场景。支持key-value的储存形式,底层是用C语言编写的。基于key-value形式的数据字典,结构非常简单,没有数据表的概念,之间用键值对的形式完成数据的管理。SQL NoSQL数据结构结构......
  • JAVA多线程的使用和创建的几种方式
    Thrad创建和使用创建实体类,继承Thread实现run()方法调用start()方法publicclassThreadDemoextendsThread{Loggerlogger=LoggerFactory.getLogger(ThreadDemo.class);privateStringtaskName;publicStringgetTaskName(){return......
  • Unity匀速移动的几种方案 Lerp,SmoothDamp,MoveTowards
    速览Lerp用于插值,可以和协程配合用于移动。SmoothDamp是阻尼移动,从不超过。MoveTowards是匀速移动,也不会超过。 方案1,使用Lerp——先快后慢运动(线性衰减)(不好用✖)Lerp最简单的用法如下:voidUpdate(){transform.position=Vector3.Lerp(transform.position,endPos,Tim......
  • K8S中,flannel有几种模式?
    在Kubernetes(K8S)中,Flannel作为一个流行的容器网络接口(CNI)插件,用于为集群中的容器提供网络互通能力。Flannel支持多种模式来实现其网络功能,主要包括以下几种常见模式:1.VXLAN模式描述:VXLAN(VirtualExtensibleLAN)是Flannel的默认后端驱动,它使用VXLAN封装技术来创建跨节点的虚拟......
  • docker 构建redis
    一、Docker搜索redis镜像dockersearchredis 二、Docker拉取镜像dockerpullredis 三、Docker挂载配置文件接下来就是要将redis的配置文件进行挂载,以配置文件方式启动redis容器。(挂载:即将宿主的文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容......
  • dockker部署redis报错(报:WARNING Memory overcommit must be enabled! Without it, a b
    转载博客(机翻):https://ourcodeworld.com/articles/read/2083/how-to-remove-redis-warning-on-docker-memory-overcommit-must-be-enabledHowtoremoveRediswarningonDocker:Memoryovercommitmustbeenabled如何删除Docker上的Redis警告:必须启用内存过量使用Carlos......
  • 常见几种大语言模型压缩技术分析详解
    大型语言模型(LLM)在自然语言处理任务中取得了显著的成功,但同时也面临着模型过大、计算需求过高的问题。为了解决这些问题,模型压缩技术应运而生,旨在减小模型大小、降低计算复杂度并提升运行效率。本文将对LLM压缩技术进行详细的分析,包括剪枝、知识蒸馏和量化等关键技术,并结合......
  • Java后端面试题(redis相关1)(day7)
    目录为什么要用Redis?Redis到底是多线程还是单线程?Redis数据持久化机制RDB方式AOF方式Redis是单线程,但为什么快?Redis过期删除策略Redis内存淘汰策略为什么要用Redis?基于内存操作,内存读写速度快支持多种数据类型,包括String、Hash、List、Set、ZSet等支持持久化,Redi......