加密哈希算法的实现原理

哈希算法(Hash function)又称散列算法,是一种从任何数据中创建小的数字“指纹”的方法。哈希算法只需满足把一个散列对象映射到另一个区间的需求,因此根据使用场景的不同,可将哈希算法分为加密哈希与非加密哈希。

2019 年总结:教训、反思、新尝试

将年终总结以“教训、反思、新尝试”为主题未免感觉有些小题大作,但这也是我在 2019 年的心路历程。在这一年里除了工程能力上的提升,还在个人学习方式、团队协同工作方面进行了一些思考,对上半年比赛过程中产生的教训进行了反思,希望在未来的工作中少犯同类的错误。

Redis RDB 与 AOF 持久化 · Analyze

Redis 是内存数据库,将数据保存在内存中,以换取更快的读取速度。但由于内存是易失性存储器,一旦进程退出或者硬件设备出现故障,Redis 存储的数据可能就会丢失。为了解决数据持久化问题,Redis 提供了 RDB 快照与 AOF 写操作记录两种方案,这篇文章就这两种分案的实现方式进行分析。

Redis 慢查询日志 · Analyze

Redis 的慢查询日志功能用来记录执行时间超过给定时长的命令请求,我们可以利用这个功能分析和优化查询速度。本篇文章将会对 Redis 的慢查询日志功能的实现原理进行分析。

Redis RESP 通信协议 · Analyze

Redis 是 client-server 架构的软件,了解 Redis 客户端与服务端的通信原理,可以更好地理解 Redis 的工作方式。Redis 客户端和服务端之间使用 RESP(REdis Serialization Protocol) 二进制安全文本协议进行通信,该协议是专为 Redis 设计的,但由于该协议实现简单,也可以将其用于其他的项目中。

Redis 事件的实现 · Analyze

Redis 采用事件驱动机制来处理大量的 I/O 操作,并实现了自己的事件驱动库,基于 Reactor 模式开发了自己的网络事件处理器,使用 I/O 多路复用程序监听多个 Socket,以处理大量的事件。

Redis db 的实现 · Analyze

在了解 Redis 的底层数据结构之后,Redis 是如何将这些碎片化的数据以键值对的形式存储在数据库中,并执行内存回收操作,Redis 数据库的实现又存在哪些特殊之处?这篇文章将会分析 Redis 数据库的实现。

Redis ll2string 算法

Redis 内部一个有趣的小算法,将`long long` 类型转换为 `string` 类型数据。这个算法的原理十分巧妙,在一些编程语言中也有类似的实现方式。

Redis 对象的实现 · Analyze

Redis 内部实现了一组比较全面的数据结构类型,但并没有直接使用这些数据结构来实现键值对数据库,而是构建了一个对象系统,利用对象系统将这些数据结构进一步封装。对象系统的设计不但可以针对不同的使用场景,为一种键值对设置不同的底层数据结构,还简化了键值对的回收、共享等操作。这篇文章将简要分析 Redis 对象系统的实现。