首页 > 数据库 >Java面试题 P17:Redis篇:Redis使用场景-缓存-缓存穿透

Java面试题 P17:Redis篇:Redis使用场景-缓存-缓存穿透

时间:2023-07-30 23:22:47浏览次数:37  
标签:writeLock 面试题 缓存 name Redis key redisUtil

什么是缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把数据库压垮。

 

 

互斥锁代码:

 1     private final ReadWriteLock readWriteLock=new ReentrantReadWriteLock();
 2     private final Lock writeLock=readWriteLock.writeLock();
 3 
 4     @GetMapping("/hi/{name}")
 5     public String hi(@PathVariable("name") String name)
 6     {
 7         System.out.println("name="+name);
 8 
 9         if(redisUtil.get(name)!=null)
10         {
11             return redisUtil.get(name).toString();
12         }
13         else {
14             writeLock.lock();
15             try{
16                 Thread.sleep(20*1000);
17                 redisUtil.set(name,"My name is "+name+"!",60);
18                 return redisUtil.get(name).toString();
19             }
20             catch (Exception e)
21             {
22                 return null;
23             }
24             finally {
25                 writeLock.unlock();
26             }
27         }
28     }

 

标签:writeLock,面试题,缓存,name,Redis,key,redisUtil
From: https://www.cnblogs.com/wuzexin/p/17592343.html

相关文章

  • 清除 Electron (原子壳)中的缓存数据
    最佳答案 Electron将其缓存存储在以下文件夹中:window:C:\Users\<user>\AppData\Roaming\<yourAppName>\CacheLinux:/home/<user>/.config/<yourAppName>/Cache操作系统:/Users/<user>/Library/ApplicationSupport/<yourAppName>/Cache因此,删除这......
  • redis群集模式
    redis群集有三种模式,redis群集有三种模式,分别是主从同步/复制、哨兵模式、Cluster,可以提高redis的高可用,高性能。目录一、redis群集模式二、主从复制三、哨兵四、集群五、总结     一、redis群集模式1.redis群集模式(1)主从复制:主从复制主要实现......
  • 通过Redis+Mysql来自定义Spring-Statemachine的持久化
    我们在使用Spring状态机的时候,往往需要对于StateMachine持久化操作,但是官方为我们提供的基于redis的持久化并不是特别好,一方面是因为只存redis容易导致数据丢失,另一方面因为状态机的特性需要对应的StateMachine的数据永久有效,导致redis中的key永不过期。我现在希望实现将StateMac......
  • Redis
    1.什么是Redis?它主要用来什么的?Redis,英文全称是RemoteDictionaryServer(远程字典服务),是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每......
  • 02:SpringBoot2 整合 Redis 详细步骤
    1、pom文件中添加redis引用1<dependency>2<groupId>org.springframework.boot</groupId>3<artifactId>spring-boot-starter-web</artifactId>4</dependency>5<dependency>6......
  • 《Redis 设计与实现》的总结
    17.集群cluster-enabled#是否开启集群模式的选项CLUSTERMEET<ip><port>#告诉当前节点将ip:port节点加入到集群中三个数据结构:clusterNode:clusterNode结构保存了一个节点的当前状态,比如节点的创建时间、节点的名字、节点当前的配置纪元、节点的IP地址和端口号等等。......
  • GoRedisLock:Golang保障数据一致性的分布式锁解决方案
    在现代分布式系统中,多个节点之间共享资源是常见的需求。然而,并发访问共享资源可能导致数据不一致性和竞争条件。为了解决这些问题,我们需要引入分布式锁。GoRedisLock是一个出色的分布式锁库,它结合了Go语言和Redis的优势,提供了稳定高效的分布式并发控制解决方案。**项目地址:**htt......
  • Java面试题 P16:Redis篇:Redis使用场景-缓存-缓存穿透
    缓存涉及问题:1、缓存三兄弟:穿透击穿雪崩2、双写一致3、持久化4、数据过期策略5、数据淘汰策略如果发生了缓存穿透,击穿,雪崩,该如何解决?1、缓存穿透什么是缓存穿透,当查询一个不存在的数据,查redis中没有,mysql查询也没有,数据也不会直接写入到redis,就导致每次都要请求数据库,......
  • Java面试题 P15:Redis篇:面试场景
    Redis内容: 面试题总结: ......
  • 在线分享大厂面试题合集+学习路线,让你把面试拿捏得死死的!
    前言金九银十还有一个月就要来了,相信有很多铁汁在这个时候都有在准备面试,面试题、面试宝典、面试手册......各种Android面试题一搜一大把,根本看不完,也看不过来,而且每份面试资料也都觉得Nice,然后就开启了收藏之路。但其实很多Android开发者,对本身没有一个清楚的规划,甚至不知道适合......