
缓存Cache
文章平均质量分 67
缓存以及缓存优化方法
哥斯拉啊啊啊哦
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Go实现雪花算法(snowflake)
将 时间戳左移22位,机器编号左移12位,序列号在最右侧不需要移动,再将3者按位或运算 |,得到一个 64 位二进制数,再将其转换为10进制数,即所需的雪花 ID。( 位或运算 | 的逻辑是只要两者中有1个数字是1,则结果为1,只有两者都是0时,结果才是0 )算法是Twitter公司推出,用来在一个分布式的环境中,生成分布式自增且不重复id的算法。该ID由一个64位二进制数组成,如上图。什么是雪花算法(snowflake)?算法实现的思路如上图。原创 2023-05-17 13:01:33 · 824 阅读 · 0 评论 -
Go实现一致性哈希算法
想象有一个圆,该圆由 2^32 个数字点组成,这样的环也叫做 哈希环。再假设有3个服务器 a, b, c,此时分别对 a,b,c 服务器进行哈希计算再用 2^32 取模,那结果肯定能对应到环上的某个点。再用同样的方法,对需要缓存的图片进行哈希计算和取模,也肯定能对应到环上的某个点。此时,按顺时针方向找,找到的第一个缓存服务器,就将该图片数据缓存到该服务器上。原创 2023-05-16 20:51:28 · 578 阅读 · 0 评论 -
5.go实现LFU缓存淘汰算法
注:以下的缓存淘汰算法实现,不考虑 并发 和 GC(垃圾回收) 问题 本文讨论的是 进程内缓存,是存放在内存中的,因此容量有限。当缓存容量达到某个阈值时,应该删除一条或多条数据。至于移出哪些数据?答案是移出那些 “无用” 的数据。而如何判断数据是否 “无用”,就设计到 缓存淘汰算法 常见的缓存淘汰算法有以下三种: FIFO(first in first )先进先出算法 《go实现FIFO缓存淘汰算法》 LFU(least frequently used)最少使用算法 看本文 LRU(least rece原创 2020-09-10 16:20:20 · 515 阅读 · 0 评论 -
4.go实现LRU缓存淘汰算法
注:以下的缓存淘汰算法实现,不考虑 并发 和 GC(垃圾回收) 问题 本文讨论的是 进程内缓存,是存放在内存中的,因此容量有限。当缓存容量达到某个阈值时,应该删除一条或多条数据。至于移出哪些数据?答案是移出那些 “无用” 的数据。而如何判断数据是否 “无用”,就设计到 缓存淘汰算法 常见的缓存淘汰算法有以下三种: FIFO(first in first )先进先出算法 《go实现FIFO缓存淘汰算法》 LFU(least frequently used)最少使用算法 《go实现LFU缓存淘汰算法》 LR原创 2020-09-10 16:18:49 · 569 阅读 · 0 评论 -
3.go实现FIFO缓存淘汰算法
注:以下的缓存淘汰算法实现,不考虑 并发 和 GC(垃圾回收) 问题 本文讨论的是 进程内缓存,是存放在内存中的,因此容量有限。当缓存容量达到某个阈值时,应该删除一条或多条数据。至于移出哪些数据?答案是移出那些 “无用” 的数据。而如何判断数据是否 “无用”,就设计到 缓存淘汰算法 常见的缓存淘汰算法有以下三种: FIFO(first in first )先进先出算法 看本文 LFU(least frequently used)最少使用算法 [《go实现LFU缓存淘汰算法》] LRU(least rec原创 2020-09-08 15:38:10 · 552 阅读 · 0 评论 -
2.为什么要内存对齐?
一. 什么是内存对齐(Memory alignment),也叫字节对齐 在计算机中,内存是按 字节(byte, 1byte = 8bit) 划分的,而cpu在读取内存数据时,并不是一字节一字节读取的。实际上是按 块 来读取的。 块的大小可以是1,2,4,8,16等等,这块的大小也称为 内存访问粒度 而 内存对齐 是将特定的数据类型按照一定的规则摆放在内存上,以此 提高cpu访问内存的速度 看如下示例: 如上图,内存访问颗粒度为4,数据大小为4字节的场景: 场景1:做了内存对齐,index 2-3 补充空原创 2020-09-07 16:34:58 · 383 阅读 · 0 评论 -
1.什么是缓存
缓存(cache) 这个概念,最早是出现在 计算机硬件设计 中。 比如 cpu cache,是用于减少处理器访问内存所需平均时间的部件。该部件的容量小于内存,但速度比内存高很多,接近处理器的频率。 如上图示,在 计算机硬件设计中 当处理器(cpu)发送内存访问请求时,先查看缓存中是否有请求数据, 如果存在(命中),则不访问内存直接返回该数据; 如果不存在(未命中),则先把内存中的数据存入缓存,再讲其返回处理器 由于缓存速度高于内存速度,因此能整体提高计算机的性能。 由于该设计思路的优秀,在 计算机原创 2020-09-05 16:49:52 · 525 阅读 · 0 评论