当前位置: 首页 > news >正文

网站开发逻辑图代理网站备案表

网站开发逻辑图,代理网站备案表,住房与城乡建设部网站工程造价,app登录界面设计图片缓存穿透请求的数据在Redis里面没有#xff0c;这种请求直接打到数据库#xff0c;然后数据库里面也没有这个数据#xff0c;数据库只能返回空#xff0c;如果继续请求#xff0c;就会一直打到数据库#xff0c;可能数据库就会因此被打崩。缓存雪崩缓存击穿第二种办法保证…缓存穿透请求的数据在Redis里面没有这种请求直接打到数据库然后数据库里面也没有这个数据数据库只能返回空如果继续请求就会一直打到数据库可能数据库就会因此被打崩。缓存雪崩缓存击穿第二种办法保证了绝对不会因为过期问题使访问直接打到数据库但是为了实现过期这个功能我们就得用更复杂的办法额外维护一个过期时间来实现过期这个功能。逻辑过期里面也有锁的使用但是是交给别的线程所以不在我们的对比行列里面。互斥锁解决击穿问题Redis设置锁的方法SETNX 是 Redis 的一个字符串String操作命令它的全称是 SET if Not eXists。功能当且仅当指定的 key 不存在时为这个 key 设置一个值。返回值1表示设置成功key 原本不存在。0表示设置失败key 已经存在。这是一个原子性操作意味着它是不可分割的。在并发环境下多个客户端同时执行 SETNX 时Redis 能确保只有一个客户端会成功。关于拆箱核心概念值类型 vs 引用类型许多语言中数据类型分为两大类值类型变量直接存储数据本身。例如int, float, char, bool 等基本数据类型。就像你口袋里直接揣着现金。引用类型变量存储的是一个内存地址引用这个地址指向实际的数据所在的内存位置。例如类、接口、数组、字符串。就像你口袋里揣着一张银行卡钱存在银行的保险柜里。 为什么需要装箱和拆箱有时候我们需要在需要引用类型的地方使用一个值类型。一个经典例子Java 中的集合如 ArrayList Java 的 ArrayList 类的 add 方法定义是 add(Object obj)它只能接收引用类型因为 Object 是所有类的超类。但如果我们想往里面存一个整数int它是值类型该怎么办这就需要 “装箱”—— 把值类型“包装”成一个引用类型的对象。装箱装箱 就是将值类型转换为对应的引用类型的过程。这个过程通常是隐式的编译器自动完成。Java 示例在 Java 中称为“自动装箱”拆箱拆箱 是装箱的逆过程它将引用类型转换回对应的值类型。这个过程有时需要显式地进行需要手动指定目标类型。Java 示例在 Java 中称为“自动拆箱”拆箱操作本质上是一个强制类型转换。你告诉编译器“相信我这个引用类型变量里面装的一定是某个特定的值类型现在请把它拿出来。”编译器在编译时无法100%确定你的这个“信任”是否正确所以它允许代码通过编译。但如果在运行时发现你的“信任”是错的就会立即抛出一个异常来中断程序。操作代码背后原理比喻手动装箱Integer box Integer.valueOf(100);调用静态工厂方法valueOf创建一个新对象。去工厂订做一个盒子。自动装箱Integer box 100;编译器帮你写Integer.valueOf(100)。告诉助理“我要个盒子”助理帮你订做。手动拆箱int i box.intValue();调用对象实例方法intValue()取出其内部值。自己动手打开盒子拿钱。自动拆箱int i box;编译器帮你写box.intValue()。特性boolean (基本类型)Boolean (包装类)数据类型基本数据类型类引用类型默认值falsenull存储位置栈内存堆内存对象本身栈上存引用占用空间约1位实际按1字节处理一整个对象的内存开销更大比较方式 比较值 比较内存地址equals() 比较包装的值功能仅能表示 true/false是一个类拥有方法如 toString(), parseBoolean()允许为null不允许允许用途普通的条件判断、循环控制需要对象的地方如泛型、集合 public R,ID R queryWithPassThrough(String keyPrefix, ID id, ClassR type, FunctionID, R dbFallback, Long time, TimeUnit unit){String key keyPrefix id;// 1.从redis查询商铺缓存String json stringRedisTemplate.opsForValue().get(key);// 2.判断是否存在if (StrUtil.isNotBlank(json)) {// 3.存在直接返回return JSONUtil.toBean(json, type);}// 判断命中的是否是空值if (json ! null) {// 返回一个错误信息return null;}// 4.不存在根据id查询数据库R r dbFallback.apply(id);// 5.不存在返回错误if (r null) {// 将空值写入redisstringRedisTemplate.opsForValue().set(key, , CACHE_NULL_TTL, TimeUnit.MINUTES);// 返回错误信息return null;}// 6.存在写入redisthis.set(key, r, time, unit);return r;} 逻辑过期解决击穿问题
http://www.zqtcl.cn/news/207038/

相关文章:

  • o2o网站建设多少钱公司设计网站定制
  • asp.net 企业网站后台管理系统源码中国vs菲律宾
  • 成都家装排名前十名wordpress优化方法
  • 南阳做网站公司网站开发服务费分录
  • 网络课程网站建设龙岩个人小程序开发
  • 上海网络推广报价seo技术培训机构
  • 在线看免费网站哪个设计培训机构好
  • 网站建设制作确认单网站建设策划书格式及范文
  • framework7做网站如何在社交网站做销售
  • dedecms_v5.6室内装饰设计公司企业网站模板.rarwordpress添加3d地图吗
  • 开发网站的意义百度推广计划
  • 网站设计师网站网站建设从入门到精通pdf
  • 游戏网站建设方案百度文库wordpress调用搜索框
  • 京东物流网站建设特点网站开发与维护岗位说明书
  • 制作一个网站的基本步骤星巴克网站建设ppt
  • 搭建企业网站宽带多大php微信公众号开发教程
  • 国家建设公债拍卖网站新手如何自己建网站
  • 网站建设颊算网站注册界面代码
  • 微信h5网站模板下载百姓网征婚
  • 模板网站和插件有哪些河南第一火电建设公司网站
  • 怎么测网站流量吗网络运维工程师教程
  • 有谁帮做网站网站建设seo合同书
  • 自己做视频网站只能用地址连接专业网站建设效果
  • 重庆网站建设价格费用酒店协会网站集静态模板
  • 会议专题网站建设报价单网站代码在哪里修改
  • 怎么用net123做网站怎么给企业制作网站
  • 网站建设合同模板网页设计团队
  • 做排行的网站淘宝流量平台
  • 用dw怎么做网站后台做一个网站需要怎么做
  • 沧州地区阿里巴巴做网站修改wordpress标题图片