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

北京平台网站建设公司移动慧生活app下载

北京平台网站建设公司,移动慧生活app下载,专业轻电商网站建设公司,优化企业网站文章目录 前言场景设计思路小结 前言 之前与同事讨论接口性能问题时听他介绍了一种缓存设计思路,觉得不错,做个记录供以后参考。 场景 假设有个以下格式的接口: GET /api?keys{key1,key2,key3,...}&types{1,2,3,...}其中 keys 是业务…

文章目录

  • 前言
  • 场景
  • 设计思路
  • 小结

前言

之前与同事讨论接口性能问题时听他介绍了一种缓存设计思路,觉得不错,做个记录供以后参考。

场景

假设有个以下格式的接口:

GET /api?keys={key1,key2,key3,...}&types={1,2,3,...}

其中 keys 是业务主键列表,types 是想要取到的信息的类型。

请求该接口需要返回业务主键列表对应的业务对象列表,对象里需要包含指定类型的信息。

业务主键可能的取值较多,千万量级,type 取值范围为 1-10,可以任意组合,每种 type 对应到数据库是 1-N 张表,示意:
在这里插入图片描述

现在设想这个接口遇到了性能瓶颈,打算添加 Redis 缓存来改善响应速度,应该如何设计?

设计思路

方案一:
最简单粗暴的方法是直接使用请求的所有参数作为缓存 key,请求的返回内容为 value。

方案二:
如果稍做一下思考,可能就会想到文首我提到的觉得不错的思路了:

  1. 使用 业务主键:表名 作为缓存 key,表名里对应的该业务主键的记录作为 value;

  2. 查询时,先根据查询参数 keys,以及 types 对应的表,得到所有 key1:tb_1_1、key1:tb_1_2 这样的组合,使用 Redis 的 mget 命令,批量取到所有缓存中存在的信息,剩下没有命中的,批量到数据库里查询到结果,并放入缓存;

  3. 在某个表的数据有更新时,只需刷新 涉及业务主键:该表名 的缓存,或令其失效即可。

小结

在以上两种方案之间做评估和选择,考虑几个方面:

  • 缓存命中率;

  • 缓存数量、占用空间大小;

  • 刷新缓存是否方便;

稍作思考和计算,就会发现此场景下方案二的优势。

另外,就是需要根据实际业务场景,如业务对象复杂度、读写次数比等,来评估合适的缓存数据的粒度和层次,是对应到某一级组合后的业务对象(缓存值对应存储 + 部分逻辑),还是最基本的数据库表/字段(存储的归存储,逻辑的归逻辑)。

http://www.hrbkazy.com/news/8275.html

相关文章:

  • 万网独立网站建设seo自学教程
  • 分布式移动网站开发技术济南网站优化公司哪家好
  • 中国4a广告公司100强seo课程培训视频
  • 淮安网站优化湖南今日新闻最新头条
  • 嵌入式和网站开发杭州优化公司哪家好
  • 深业资本有限公司网站建设免费网站或软件
  • 建设网站有什么作用是什么百度怎么推广自己的视频
  • 建设网站可以做什么网络做推广广告公司
  • 男女做羞羞事图片大全动态网站国产最好的a级suv88814
  • 新余网站建设公司域名服务器ip地址查询
  • 厦门手机网站建设是什么重庆百度竞价开户
  • 郑州网站推广公司地址如何制作一个简易网站
  • 汉中定制网站建设公司品牌营销案例
  • 网站可以做哪些广告语企业网络营销案例
  • 协会网站模板百度知道合伙人官网登录入口
  • 这几年做哪些网站致富网络搭建的基本流程
  • 帮助企业做网站的销售互联网网络推广
  • 蓄电池回收网站建设亚洲精华国产精华液的护肤功效
  • python做软件界面厦门seo外包服务
  • 触屏音乐网站源码线上营销活动主要有哪些
  • h5网站用什么软件做百度快照
  • 黄山旅游官方平台aso具体优化
  • 企业网站 设计需求数字营销公司排行榜
  • 在线画图软件seo公司seo教程
  • 做网站和推广需要多少钱源码交易平台
  • 乡村生态旅游网站建设方案腾讯会议多少钱一个月
  • 长沙域名注册公司单页网站seo如何优化
  • 购物网站策划方案seo编辑招聘
  • 帮卖货平台seo学院
  • php网站游客试用怎么做百度本地惠生活推广