【算法】缓存淘汰算法LRU/LFU
无论是什么系统,在研发的过程中不可避免的会使用到缓存,而缓存一般来说我们不会永久存储,但是缓存的内容是有限的,那么我们如何在有限的内存空间中,尽可能的保留有效的缓存信息呢? 那么我们就可以使用 LRU/LFU算法 ,来维持缓存中的信息的时效性。 LR...
无论是什么系统,在研发的过程中不可避免的会使用到缓存,而缓存一般来说我们不会永久存储,但是缓存的内容是有限的,那么我们如何在有限的内存空间中,尽可能的保留有效的缓存信息呢? 那么我们就可以使用 LRU/LFU算法 ,来维持缓存中的信息的时效性。 LR...
热key指一段时间内被频繁访问或操作的键。通常出现在商品限时抢购、瞬时新闻热点等业务场景,可能会对系统的稳定性和可用性造成影响,比如对应节点的网卡带宽被打满,出现丢包重传,请求波动耗时大幅上升,甚至影响到业务的正常使用,引发用户的不满。因此,不可能等...
秒杀系统作为互联网“高并发、高性能、高可用”系统的代表,从系统设计、数据处理到运维保障等方面都有很多可以考察和深挖的点,本文将尝试分析涉及的关键问题,并总结相关的最佳实践。 秒杀系统的核心挑战在于平衡性能、一致性与安全性。 秒杀系统中常见的问题包括:...
数据库和缓存的一致性问题,在面试以及实践中都是非常重要的知识点,而一般面试者只能说出最佳的实践是什么(即延迟双删或者先更新数据库再删除缓存key),但是不能通过线程之间的读写关系举例说明为什么要这样实践,本文通过穷尽更新缓存的四种方式进行分析,得出了...
本文将使用kubeadm模式快速部署一主两从集群。 虚拟机准备首先本地需要准备:CentOS7.x-86_x64镜像,硬件至少2GB。 然后打开VMware WorkStation新建三个虚拟机(新建虚拟机教程,可以选择基础设施服务器),分别命名为m...
从几个缩写讲起首先,提到事务,一般指的是数据库的事务,指逻辑上的一组操作,要么都执行,要么都不执行。 ACID,指的是数据库在写入或者更新资料时,为了保证交易正确可靠,要具备的4个特性: 缩写 英文单词 中文解释 说明 A atomici...
正式进入工作岗位之前对精进技术的思考——工程上的最佳实践 Why?首先要理解为什么要从工程实践的角度思考,常规的培训教程虽然是以项目的形式,但目的是帮助我们学会使用基本的开发工具如何使用,而实际开发过程中如何将各种技术组件有效地组合和应用、如何解决实...
Git有两个基本作用: 版本控制 团队开发 一、Git工作流程 二、Git基本配置设置用户信息设置:(+如果要查看,只输入双引号前面的就好了) 12git config --global user.name "yourname"...
环境第1步:下载go(下载地址) 第2步:配置环境变量 GOROOT:go的安装目录 GOPATH:go的工作目录(全局),一般给文件夹起名叫GoWorkstation、Go_WorkSpace等。 src:存放源代码 pkg:存放依赖包 b...
基本认识 在Go中,将错误当成值来进行处理,强调判断错误和处理错误,不支持try/catch捕获异常。 Go选择使用Error而非Exception来进行错误处理。 一般把错误作为函数或方法的最后一个返回值。 Error接口使用error接口表示错...