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

国内最先做弹幕的网站克拉玛依网站建设公司

国内最先做弹幕的网站,克拉玛依网站建设公司,龙华龙岗光明最新通告,h5建设网站公司线上问题 未及时加监控#xff0c;导致线上redis被逐出#xff0c;业务有损 示例#xff1a; 一个key临时存储在redis等缓存中#xff0c;如果该key在一段时间内有很大作用 比如一次业务请求#xff0c;上游服务写入一个value#xff0c;时长1小时#xff0c;下游服务…线上问题 未及时加监控导致线上redis被逐出业务有损 示例 一个key临时存储在redis等缓存中如果该key在一段时间内有很大作用 比如一次业务请求上游服务写入一个value时长1小时下游服务需要在1小时内读取它并完成核心逻辑 如果被逐出后导致下游拿不到数据使得此次请求带来也业务问题 解决方法 redis 80%容量时添加监控及时告警及时进行业务处理。 学习文档 https://juejin.cn/post/6921884079830859789 影响 内存数据库当其使用的内存超过物理内存限制后内存和磁盘产生频繁的数据交换 导致Redis性能急剧下降 策略 通过配置参数maxmemoey来限制使用的内存大小。 当实际使用内存超过maxmemoey后Redis提供了如下几种可选策略。 noeviction不驱逐eviction表示驱逐写请求返回错误 volatile-lru使用lru算法删除设置了过期时间的键值对 volatile-lfu使用lfu算法删除设置了过期时间的键值对 volatile-random在设置了过期时间的键值对中随机进行删除 volatile-ttl根据过期时间的先后进行删除越早过期的越先被删除 allkeys-lru在所有键值对中使用lru算法进行删除 allkeys-lfu在所有键值对中使用lfu算法进行删除 allkeys-random所有键值对中随机删除 附录 LRU - Least Recently Used 最近最少使用 最近访问的数据后续很大概率还会被访问到 长时间未被访问的数据应该被淘汰 LRU算法中数据会被放到一个链表中 链表的头节点为最近被访问的数据 链表的尾节点为长时间没有被访问的数据 LRU算法的核心实现是哈希表双向链表 链表用来维护访问元素的顺序哈希表可以在O(1)时间复杂度下进行元素访问 为什么是双向链表呢 删除元素的话需要获取前继节点 LFU - Least Frequently Used LRU算法有一个问题当一个长时间不被访问的key偶尔被访问一下后可能会造成一个比该key访问更频繁的key被淘汰。 LRU算法对key的冷热程度判断不准确。 最不经常使用 按照访问频率来判断key的冷热程度每次删除的是一段时间内访问频率较低的数据比LRU算法更准确 如何设计 需要存储k-v的mapkeyToVal 需要存储某个k的访问频次的mapkeyToFreq 需要存储当前系统最小的访问频次minFreq 当缓存满时有数据k2需要插入需要先O1寻找访问频次最低且插入最早的k1然后删除它接着O1更新k2的访问频次 某个访问频次的k可能不止一个有多个如何O1找到这些k用访问频次-集合的存储freqTokeys 如何从找到的集合中O1找到插入最早的k1用双向链表表头作为该频次中插入最早的元素。 最终选择既有O1找到集合的mapO1找到插入最早的k1 - HashMapInteger, LinkedHashSet LinkedHashSet类链表和集合的结合体 链表不能快速删除元素但是能保证插入顺序 集合内部元素无序但是能快速删除元素O(lgN) LinkedHashSet是一种在迭代其元素时可以返回它们被插入的顺序的set集合类型 也就是说它可以保证元素的插入与访问顺序。 private HashMapK, V keyToVal; // HashMap private HashMapK, Integer keyToFreq; // HashMap private int minFreq; private int capacity; private HashMapInteger, LinkedHashSetK freqTokeys;public class LfuCacheK, V {private HashMapK, V keyToVal;private HashMapK, Integer keyToFreq;private HashMapInteger, LinkedHashSetK freqTokeys;private int minFreq;private int capacity;public LfuCache(int capacity) {keyToVal new HashMap();keyToFreq new HashMap();freqTokeys new HashMap();this.capacity capacity;this.minFreq 0;}public V get(K key) {V v keyToVal.get(key);if (v null) {return null;}// 如果k存在则增加访问频次increaseFrey(key);return v;}public void put(K key, V value) {// get方法里面会增加频次if (get(key) ! null) {// 重新设置值keyToVal.put(key, value);return;}// 超出容量删除频率最低的key 【逐出策略】if (keyToVal.size() capacity) {removeMinFreqKey();}// 能进入到这里说明最小访问频次一定是1// k-v插入keyToVal.put(key, value);// k-访问频次插入keyToFreq.put(key, 1);// freqTokeys中key对应的value存在返回存在的key不存在添加key和value// 不存在则创建一个新的LinkedHashSet并插入freqTokeys.putIfAbsent(1, new LinkedHashSet());// 访问频次为1的集合中有序插入当前keyfreqTokeys.get(1).add(key);// 系统最小访问频次一定是1this.minFreq 1;}// 【逐出策略】// 删除出现频率最低且插入最早的keyprivate void removeMinFreqKey() {// 找到最小访问频次对应的 LinkedHashSetK 集合列表LinkedHashSetK keyList freqTokeys.get(minFreq);// 获取keyList中的第一个元素// iterator()方法返回一个在一系列元素上进行迭代的迭代器// next()方法获取迭代器当前位置的下一个元素K deleteKey keyList.iterator().next();// 从 keyList 中删除链表第一个节点如果keyList中只有一个元素则将整个keyList删除keyList.remove(deleteKey);if (keyList.isEmpty()) {// 这里删除元素后不需要重新设置minFreq因为put方法执行完会将minFreq设置为1freqTokeys.remove(keyList);}// k-v中逐出keyToVal.remove(deleteKey);// k-访问频次中逐出keyToFreq.remove(deleteKey);}// 增加频率private void increaseFrey(K key) {// 获取当前key的访问频次int freq keyToFreq.get(key);// 当前key的访问频次1keyToFreq.put(key, freq 1);// 当前访问频次中维护的key集合中删除当前keyfreqTokeys.get(freq).remove(key);// 当前访问频次1中维护的key集合中插入当前key如果LinkedHashSet不存在则先new一个freqTokeys.putIfAbsent(freq 1, new LinkedHashSet());freqTokeys.get(freq 1).add(key);// 当前访问频次中维护的key集合为空则remove掉该LinkedHashSetif (freqTokeys.get(freq).isEmpty()) {freqTokeys.remove(freq);// remove掉该LinkedHashSet代表系统中最小的访问频次为 this.minFreqif (freq this.minFreq) {this.minFreq;}}} }
http://www.zqtcl.cn/news/409017/

相关文章:

  • 个人做网站接装修活哪个网站好长沙企业网站建设分公司
  • 青岛网站制作辰星辰中国万网icp网站备案专题
  • 做淘宝相关网站上海网站建设做物流一
  • 服装配件网站建设 中企动力静态网站 后台
  • 做网站较好的框架网站建设的定位是什么
  • 如何保护自己的网站桂林医院网站建设
  • 产品品牌策划方案佛山网站优化美姿姿seo
  • 北京城建一建设发展有限公司网站大连在哪个省的什么位置
  • 北京知名网站建设公司排名学校诗歌网站建设
  • 个人做网站接装修活哪个网站好上海造价信息网官网
  • 网页上做网会员网站备案怎么写oa报表网站开发
  • 郑州服装网站建设网站的层级
  • 东莞建设网站制作怎么建立信息网站平台
  • 网站建设的公司服务手机上做ppt的软件
  • 体育网站模版爱站网
  • 建设部网站最新消息浏览器网站大全免费
  • 网站建设 选中企动力邯郸哪有做网站的公司
  • 个人网站cms系统网站排名下降了怎么办
  • 2o18江苏建设网站施工员模试卷哈尔滨app开发
  • 网站后台管理系统论文湖州交通网站集约化建设项目
  • 唐山地区网站开发公司郑州市哪里有网站建设
  • ps做汽车网站下载网络推广专员招聘
  • 荥阳网站开发WordPress 采集文章 图片
  • 网站域名登记证明文件音乐网站开发需要什么语言工具
  • 贵州域网网站建设东莞做外贸网站的公司
  • ps怎么做华为网站界面怎样做网站步骤
  • 免费做试卷的网站或试卷seo 培训教程
  • 创意网站建设价格多少最新新闻热点事件2022年8月
  • wordpress用户登录界面插件重庆网站排名优化公司
  • 网站整体建设方案设计wordpress 插件升级慢