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

网站开发后端指什么网页设计实训班

网站开发后端指什么,网页设计实训班,安庆市网站建设,wordpress author id高并发如何实现单用户信息查询接口 故事情节 产品#xff1a;小李#xff0c;有个单用户信息查询的功能#xff0c;需要你实现一下小李#xff1a;这还不简单#xff0c;两分钟我给你实现两分钟过去…小李#xff1a;欧克了#xff0c;部署上线了运维#xff1a;哪个…高并发如何实现单用户信息查询接口 故事情节 产品小李有个单用户信息查询的功能需要你实现一下小李这还不简单两分钟我给你实现两分钟过去…小李欧克了部署上线了运维哪个傻蛋写的接口导致MySQL宕机了小李一愣他写的接口明明没有报错啊这是怎么回事呢产品小李赶紧给我排查出来否则这个月的奖金一分都没有小李这这这我不知道什么问题啊小李纳闷中思来思去不知道什么问题如何解决…小李老黄只能求你出马了这个月我的奖金全部都给你老黄听到小李的请求他微微一笑答应了下来老黄么得问题了老黄耐心地指导小李修复了这个错误并对代码进行了优化和完善小李听得认真心里暗自发誓要吸取教训以后在工作中更加严谨细致。而这次经历也让他对老黄产生了更深的敬意和信任最终小李成功排查并解决了问题产品顺利上线运行。产品部门的领导对他的表现给予了肯定和赞赏而他也因为自己的努力和进步获得了全额的奖金 小李写的代码 Service层 直接查询MySQL返回数据 public UserQueryRespDTO queryUserByUserId(Long userId) {LambdaQueryWrapperUserDO queryWrapper Wrappers.lambdaQuery(UserDO.class).eq(UserDO::getUserId, userId);ListUserDO userDOList userMapper.selectList(queryWrapper);UserDO userDO CollUtil.isNotEmpty(userDOList) ? userDOList.get(0) : null;UserQueryRespDTO userQueryRespDTO new UserQueryRespDTO();BeanUtil.convert(userDO, userQueryRespDTO);return userQueryRespDTO; }流程图 http 请求直接打到 MySQL 数据库不宕机才怪嘞 老黄写的代码 Service层 先读取 Redis 缓存数据存在直接返回用户数据不存在读取 MySQL 数据库加上双重判定锁减轻获得分布式锁后线程访问数据库压力读取到 MySQL 数据缓存到 Redis 并且返回读取数据为NULL缓存空对象到 Redis 中并设置一个较短的过期时间防止缓存穿透 public UserQueryRespDTO queryUserByUserId(Long userId) {UserDO userDO distributedCache.safeGet(USER_INFO_KEY userId,UserDO.class,() - {LambdaQueryWrapperUserDO queryWrapper Wrappers.lambdaQuery(UserDO.class).eq(UserDO::getUserId, userId);ListUserDO userDOList userMapper.selectList(queryWrapper);return CollUtil.isNotEmpty(userDOList) ? userDOList.get(0) : null;},30,TimeUnit.MINUTES,null,null,key - {// 缓存空对象解决缓存穿透。也可以使用布隆过滤器。distributedCache.put(key, new UserDO(), 5, TimeUnit.MINUTES);});UserQueryRespDTO userQueryRespDTO new UserQueryRespDTO();BeanUtil.convert(userDO, userQueryRespDTO);return userQueryRespDTO; }第二行distributedCache.safeGet方法 public T T safeGet(String key, ClassT clazz, CacheLoaderT cacheLoader, long timeout, TimeUnit timeUnit,RBloomFilterString bloomFilter, CacheGetFilterString cacheGetFilter, CacheGetIfAbsentString cacheGetIfAbsent) {T result get(key, clazz);// 缓存结果不等于空或空字符串直接返回通过函数判断是否返回空为了适配布隆过滤器无法删除的场景两者都不成立判断布隆过滤器是否存在不存在返回空if (!CacheUtil.isNullOrBlank(result)|| Optional.ofNullable(cacheGetFilter).map(each - each.filter(key)).orElse(false)|| Optional.ofNullable(bloomFilter).map(each - !each.contains(key)).orElse(false)) {return result;}RLock lock redissonClient.getLock(SAFE_GET_DISTRIBUTED_LOCK_KEY_PREFIX key);lock.lock();try {// 双重判定锁减轻获得分布式锁后线程访问数据库压力if (CacheUtil.isNullOrBlank(result get(key, clazz))) {// 如果访问 cacheLoader 加载数据为空执行后置函数操作if (CacheUtil.isNullOrBlank(result loadAndSet(key, cacheLoader, timeout, timeUnit, true, bloomFilter))) {Optional.ofNullable(cacheGetIfAbsent).ifPresent(each - each.execute(key));}}} finally {lock.unlock();}return result; }流程图
http://wiki.neutronadmin.com/news/81256/

相关文章:

  • 江门做网站那家公司好音乐网站怎么做外链
  • 阿里云建站视频全部网站
  • 做qq头像的网站wordpress 本地头像
  • 专业的wap网站开发个人兼职网站制作
  • 9377将军网站优化原理
  • wordpress站群是什么那里有网站建设
  • 福州网站制作公司wordpress 文章全部显示
  • 做外贸需要关注国外哪些网站专业的网站服务公司
  • 创意视觉网站crm客户管理系统简历
  • 商务网站建设与维护课程做网站运维
  • 做网站模板赚钱吗宜春seo
  • 外吐司做的阿里巴巴的网站淘宝搜索框去什么网站做
  • php网站实例网站优化排名公司
  • 网站建设junke100搞笑视频网站建设策划书
  • 北京高端网站制作怎样做医疗保健网站
  • dw建设网站的代码模板下载浙江乐清新闻今天
  • 邯郸做企业网站改版做建材的网站好名字
  • 怎么做公司网站的手机客户端太原做网站需要多少钱
  • 做一个平面网站的成本wordpress做手机版
  • 自己做网站写文章变装app制作教程
  • 建筑工程是干嘛的高明搜索seo
  • 橱柜手机网站模板微信小程序官网
  • 企业网站必须实名认证cq网络网站
  • 网络舆情分析的内容快速网站seo效果
  • 包包网站建设策划书安徽建筑网
  • 网站建设免费国外云鼎大数据888元建站
  • 连网站建设百度服务中心投诉
  • 网站建设与优化推广方案内容学生创业做网站制作设计
  • 腾讯云建设网站怎么seo关键词优化排名
  • 佛山建设网站推广资源整合平台