摘要: 近日 Redis 6.0.0 GA 版本发布,这是 Redis 历史上最大的一次版本更新,包括了客户端缓存 (Client side caching)、ACL、Threaded I/O 和 Redis Cluster Proxy 等诸多更新。 我们今天就依次聊一下客户端缓存的必要性、具体使用、原理分析和实现。 阅读全文
posted @ 2020-05-11 21:30 程序员历小冰 阅读(1906) 评论(0) 推荐(4) 编辑
摘要: 在上一篇 "《Java 数据持久化系列之池化技术》" 中,我们了解了池化技术,并使用 Apache common Pool2 实现了一个简单连接池,实验对比了它和 HikariCP、Druid 等数据库连接池的性能数据。在性能方面,HikariCP遥遥领先,而且它还是 Spring Boot 2.0 阅读全文
posted @ 2020-04-14 21:09 程序员历小冰 阅读(1326) 评论(0) 推荐(0) 编辑
摘要: 疫情期间在家工作时,同事使用了 insert into on duplicate key update 语句进行插入去重,但是在测试过程中发现了死锁现象: 由于开发任务紧急,只是暂时规避了一下,但是对触发死锁的原因和相关原理不甚了解,于是这几天一直在查阅相关资料,总结出一个系列文章供大家参考。本篇是 阅读全文
posted @ 2020-04-01 22:38 程序员历小冰 阅读(1460) 评论(1) 推荐(1) 编辑
摘要: 今天我们就先来了解一下池化技术的必要性、原理;然后使用 Apache-common-Pool2实现一个简单的数据库连接池;接着通过实验,对比简单连接池、HikariCP、Druid 等数据库连接池的性能数据,分析实现高性能数据库连接池的关键;最后分析 Pool2 的具体源代码实现。 阅读全文
posted @ 2020-02-03 21:49 程序员历小冰 阅读(1526) 评论(0) 推荐(0) 编辑
摘要: 上一篇《分布式数据缓存中的一致性哈希算法》 文章中讲述了一致性哈希算法的基本原理和实现,今天就以 Redis Cluster 为例,详细讲解一下分布式数据缓存中的数据分片,上线下线时数据迁移以及请求重定向等操作。 阅读全文
posted @ 2019-12-21 21:36 程序员历小冰 阅读(688) 评论(0) 推荐(1) 编辑
摘要: 在上一篇文章中《Redis 命令执行过程(上)》中,我们首先了解 Redis 命令执行的整体流程,然后细致分析了从 Redis 启动到建立 socket 连接,再到读取 socket 数据到输入缓冲区,解析命令,执行命令等过程的原理和实现细节。接下来,我们来具体看一下 set 和 get 命令的实现细节和如何将命令结果通过输出缓冲区和 socket 发送给 Redis 客户端。 阅读全文
posted @ 2019-12-14 10:48 程序员历小冰 阅读(2578) 评论(6) 推荐(1) 编辑
摘要: 今天我们来了解一下 Redis 命令执行的过程。在之前的文章中《当 Redis 发生高延迟时,到底发生了什么》我们曾简单的描述了一条命令的执行过程,本篇文章展示深入说明一下,加深读者对 Redis 的了解。 阅读全文
posted @ 2019-12-11 18:51 程序员历小冰 阅读(6684) 评论(0) 推荐(3) 编辑
摘要: 前段时间小冰在工作中遇到了一系列关于数据持久化的问题,在排查问题时发现自己对 Java 后端的数据持久化框架的原理都不太了解,只有不断试错,因此走了很多弯路。于是下定决心,集中精力学习了持久化相关框架的原理和实现,总结出这个系列。 阅读全文
posted @ 2019-11-26 20:49 程序员历小冰 阅读(1666) 评论(0) 推荐(0) 编辑
摘要: Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多。但是 Redis 也会发生延迟时,这是就需要我们对其产生原因有深刻的了解,以便于快速排查问题,解决 Redis的延迟问题 阅读全文
posted @ 2019-11-12 20:44 程序员历小冰 阅读(1774) 评论(2) 推荐(2) 编辑
摘要: 公理设计理论将设计建立在科学公理、定理和推论的基础上,由麻省理工学院教授 Nam. P. Suh 领导的研究小组于 1978 年提出,适用于各种类别的设计活动。软件设计当然也属于一类工程设计过程,下面我们就来看一下两者的关联。 阅读全文
posted @ 2019-11-02 22:03 程序员历小冰 阅读(604) 评论(2) 推荐(2) 编辑