置顶FIFO缓存淘汰算法

缓存 

计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,这句话就是整个计算机软件以及系统设计中的核心思想,而缓存对这一思想的一种实践。

下次 CodeReview ,可得好好做啊


“CodeReviw 很重要,我们一定要做好 CodeReview。“ 相信从大家在进入公司,开始编程工作的那一天起,就会经常听到别人说过这句话。 每次事故复盘,改进措施里面也总是经常能看到:改进 CodeReview 流程,严格执行 CodeReview 。

个人工具&好物分享

工具 

工欲善其事,必先利其器。下面是个人常用的一些工具,也是对自己使用工具的梳理, 供参考:

Redis【4】- Redis 中的双向链表adlist 的前世今生

redis 

链表在 Redis 中有广泛的应用,比如列表键的实现之一就是链表。当一个列表键包含了数量比较多的元素,或者列表中包含的元素都是比较长的字符串的时候,Redis 就会使用链表来作为列表键的底层实现。

Redis【3】- Redis 3.2 版本之前的 list

redis 

在 Redis 中,List 数据结构包括两种主要实现方式:双向链表和压缩列表。这两者是互斥的,即在同一个 List 中,Redis 会根据一定的条件选择使用其中的一种数据结构。

1. 初识Go语言

Go 

1 Go 语言背景 Go 语言被称为 21 世纪的 C 语言,最终的目标据说是设计网络和多核时代的 C 语言。 Go 语言的历史可以说是充满了奇闻和趣事,故事要从 2007 年说起,当时谷歌的工程师们因为软件开发过程中频繁使用的 C++存在一些痛点,比如编译速度慢、语言复杂等。于是,由 Robert

Redis【1】- 阅读源码


1 Redis 的简介 Redis 实际上是简称,全称为 Remote Dictionary Server (远程字典服务器),由 Salvatore Sanfilippo 写的高性能 key-value 存储系统,其完全开源免费,遵守 BSD 协议。Redis 与其他 key-value 缓存产品

Redis【2】- SDS源码分析

redis 

1 简介&基础用法 Redis 中用得最多的就是字符串,在 C 语言中其实可以直接使用 char* 字符数组来实现字符串,也有很多可以直接使用得函数。但是 Redis 并没有使用 C 语言原生的字符串,而是自己实现了一个 SDS(简单动态字符串,Simple Dynamic String) 。 Re

从缓存到分布式缓存

缓存 

Cache 一词来源于 1967 年的一篇电子工程期刊论文。其作者将法语词“cache”赋予“safekeeping storage”的涵义,用于电脑工程领域。当时没有 Cache,CPU 和内存都很慢,CPU 直接访问内存。

布隆过滤器详解


前面我们提到,在防止缓存穿透的情况(缓存穿透是指,缓存和数据库都没有的数据,被大量请求,比如订单号不可能为-1,但是用户请求了大量订单号为-1的数据,由于数据不存在,缓存就也不会存在该数据,所有的请求都会直接穿透到数据库。),我们可以考虑使用布隆过滤器,来过滤掉绝对不存于集合中的元素。