![](https://img-blog.csdnimg.cn/20201015135953765.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis
文章平均质量分 86
深入浅出 Redis
壹言
人生碌碌,竞短论长,却不道荣枯有数,得失难量。
展开
-
Redis 的持久化
原文链接:https://www.changxuan.top/?p=1386 Redis 是一个非关系型的内存数据库,使用内存存储数据是它能够进行快速存取数据的原因之一。 在实际应用中,常有人提倡把 Redis 只作为一种能够提高用户体验的组件来使用, 也就是说即使 Redis 服务挂掉之后也要保证系统正常使用。不过,在很多系统中还是希望既能发挥 Redis 基于内存快速存取的特性,又希望机器断电或 Redis服务停止后数据不丢失。所以,才引出了 Redis 的持久化功能。 在许多技术文章中,提到 R原创 2021-05-09 16:33:07 · 217 阅读 · 0 评论 -
【Redis 分布式锁】(3)完善这把“锁”
https://www.changxuan.top/?p=1243 在上一篇文章(好用一点的锁)的最后,我们又发现了目前的锁存在两个问题: 由于不可控的异常状况,持有锁的线程不能显示的释放锁,导致锁一直处在被持有的状态。 目前锁不支持在某一段时间内只允许获取一次锁。 我们首先来看第一个问题。为了避免出现这种“长生不老”的锁,我们肯定需要给它设置一个过期时间的。你可能会想到使用expire命令对锁设置过期时长,但是setnx和expire的两次执行需要是原子性的。为什么需要是原子性的?还是那...原创 2021-01-31 13:11:14 · 199 阅读 · 0 评论 -
【Redis 分布式锁】(2)好用一点的“锁”
https://www.changxuan.top/?p=1238 在上一篇文章(一把简单的“锁”)中,我们发现了目前锁存在两个问题: 某个线程所持有的锁可以被其它线程随意释放掉 目前锁还不支持可配置的阻塞/非阻塞锁 注:当然不仅仅存在这两个问题 首先,我们来看第一个问题。之所以存在这种问题,是因为在释放锁的时候只要知道这把锁的名称(key)就能释放成功了。就好比你进卧室后,在卧室门上加了一把“卧室锁”(key),然后有其他人想进的时候就说释放”卧室锁”,然后门就开了。所以,这把锁也太不安全了。想解原创 2021-01-31 13:08:42 · 201 阅读 · 0 评论 -
【Redis 分布式锁】(1)一把简单的“锁”
原文链接:https://www.changxuan.top/?p=1230 前言 在单体架构向分布式集群架构演进的过程中,项目中必不可少的一个功能组件就是分布式锁。在开发团队有技术积累的情况下,做为团队的一个“工具人”往往有限的时间都投入到了业(C)务(U)开(R)发(D)上,并不会去深究工具类中的分布式锁到底是如何实现的。大家只需要清楚如何使用某个同事写好的 Redis 工具类就可以了。所以,今天就带大家从零开始实现一个基于Redis的可以在项目中直接使用的分布式锁。 首先,需要搞清楚一个问题,我原创 2021-01-31 13:06:37 · 219 阅读 · 0 评论 -
Redis中的字典
原文链接:https://www.changxuan.top/?p=1122 简介 字典是一种在 Redis 中高频使用的用于保存键值对的抽象数据结构,在 Java 中常用的有 HasmMap 等。 由于字典中键的唯一性,所以在 Redis 中得到了广泛的应用。 实现 Redis 中的字典是基于哈希表 (dictht, dict hash table)实现的,哈希表中的每个节点保存一个键值对。哈希表的结构体定义如下: typedefstructdictht{ //哈希表数组 d...原创 2020-10-15 00:00:09 · 951 阅读 · 0 评论 -
Redis 中的链表结构
原文链接:https://www.changxuan.top/?p=1117 链表,作为数据结构中的常客想必大家已经十分熟悉,在 Java 中也有许多类型的内置链表。Redis 使用C语言实现了自己的链表结构。 介绍 首先,在 Redis 中的链表与我们平常做算法题时用到的简单链表不太相同。具体来说,就是 Redis 的链表由两部分组成,一个是链表节点结构体,一个是链表结构体。而链表节点结构体是双指针的,这样构成的链表则是一个双端链表。链表节点结构体的定义如下: typedef struct li原创 2020-10-12 22:08:42 · 219 阅读 · 0 评论 -
「Redis」字符串详解
原文链接:https://www.changxuan.top/?p=1109 简介 Redis 中自定义的字符串结构。 字符串是 Redis 中最常用的一种数据类型,在 Redis 中专门封装了一个字符串结构体——简单动态字符串(Simple Dynamic String, SDS)。其结构体如下: struct sdshdr { // 记录 buf 数组中已使用字节的数量既 SDS 中所原创 2020-10-11 22:53:22 · 203 阅读 · 0 评论