跳跃列表源码实现

跳跃表将有序链表中的部分节点分层,每一层都是一个有序链表。在查找时优先从最高层开始向后查找,当到达某节点时,如果next节点值大于要查找的值或next指针指向NULL,则从当前节点下降一层继续向后查找,这样可以有效提升效率。如下图所示使用跳表查找51的路径 ......

压缩列表的源码实现

压缩列表ziplist本质上就是一个字节数组,是Redis为了节约内存而设计的一种线性数据结构,可以包含多个元素,每个元素可以是一个字节数组或一个整数。 Redis的有序集合、散列和列表都直接或者间接使用了压缩列表。当有序集合或散列表的元素个数比较少,且元 ......

Redis 常见命令

检查操作系统配置 redis-server --check-system 结果如下,说明检查通过: [slow-clocksource]...OK [xen-clocksource]...OK [overcommit]...OK [THP]...OK ......

【Redis源码】Redis 6 ACL源码详解

本文主要是讲解Redis 6的ACL的实现原理。基本使用详见:Redis 6.0新特性——ACLs,以及Redis启动过程分析。

【Redis源码】setbit命令

setbit命令对key所存储的字符串值,设置指定偏移量上的比特位。 格式: setbit key offset value 返回值: 返回指定偏移量原来存储的位。

【Redis源码】mget命令

通过get命令只能获取单个key的值,如果想获取多个key的值,可以通过mget命令来实现。mget返回所有指定key的值。 格式: mget key [key …]

【Redis源码】strlen命令

strlen命令从数据库中获取到value,返回value字符串的长度。 格式: strlen key

当Redis数据磁盘坏掉之后会发生什么

当Redis cluster集群数据所在磁盘的RAID卡坏掉了之后会发生什么?集群会不会进行故障迁移,以及怎么快速恢复。

【Redis源码】setrange命令

setrange命令主要用于设置value的部分子串,设置时将值从偏移量offset开始覆盖成value值。如果偏移值大于原值的长度,则偏移量之前的字符串由“\x00”填充。 命令格式: setrange key offset value

Redis 6 新特性

Redis6.0.0稳定版出来了。这一次是从发布第一个候选版本到最终发布稳定版本之间的一个相对较短的周期。它花了大约四个月的时间,这不是一个小数目的时间,但与我们过去的记录相比,也不是很多。 主要的变化有: SSL、ACLs、RESP3、客户端缓存、线程I ......