Redis为什么用跳表实现有序集合
前言近几年针对 Redis 面试时会涉及常见数据结构的底层设计,其中就有这么一道比较有意思的面试题:“Redis 的有序集合底层为什么要用跳表,而不用平衡树、红黑树或者 B+树?”。本文就以这道大...
Redis内存碎片详解
什么是内存碎片?你可以将内存碎片简单地理解为那些不可用的空闲内存。举个例子:操作系统为你分配了 32 字节的连续内存空间,而你存储数据实际只需要使用 24 字节内存空间,那这多余出来的 8 字...
Redis持久化机制详解
使用缓存的时候,我们经常需要对内存中的数据进行持久化也就是将内存中的数据写入到硬盘中。大部分原因是为了之后重用数据(比如重启机器、机器故障之后恢复数据),或者是为了做数据同步(比如...
Redis常见阻塞原因总结
本文整理完善自:https://mp.weixin.qq.com/s/0Nqfq_eQrUb12QH6eBbHXA ,作者:阿 Q 说代码这篇文章会详细总结一下可能导致 Redis 阻塞的情况,这些情况也是影响 Redis 性能的关键因素,使用 Re...
Redis常见面试题总结(1)
Redis 基础什么是 Redis?Redis (REmote DIctionary Server)是一个基于 C 语言开发的开源 NoSQL 数据库(BSD 许可)。与传统数据库不同的是,Redis 的数据是保存在内存中的(内存数据库,支持...
如何基于Redis实现延时任务
基于 Redis 实现延时任务的功能无非就下面两种方案: Redis 过期事件监听 Redisson 内置的延时队列 面试的时候,你可以先说自己考虑了这两种方案,但最后发现 Redis 过期事件监听这种方案存在很...
Redis常见面试题总结(2)
Redis 事务什么是 Redis 事务?你可以将 Redis 中的事务理解为:Redis 事务提供了一种将多个命令请求打包的功能。然后,再按顺序执行打包的所有命令,并且不会被中途打断。Redis 事务实际开发中...
MySQL自增主键一定是连续的吗
作者:飞天小牛肉原文:https://mp.weixin.qq.com/s/qci10h9rJx_COZbHV3aygQ众所周知,自增主键可以让聚集索引尽量地保持递增顺序插入,避免了随机查询,从而提高了查询效率。但实际上,MySQL ...
MySQL执行计划分析
原文地址:https://mp.weixin.qq.com/s/d5OowNLtXBGEAbT31sSH4g优化 SQL 的第一步应该是读懂 SQL 的执行计划。本篇文章,我们一起来学习下 MySQL EXPLAIN 执行计划相关知识。什么是执行计划?执...
MySQL隐式转换造成索引失效
本次测试使用的 MySQL 版本是 5.7.26,随着 MySQL 版本的更新某些特性可能会发生改变,本文不代表所述观点和结论于 MySQL 所有版本均准确无误,版本差异请自行甄别。原文:https://www.guitu18....