Redis
文章平均质量分 96
本系列主要介绍Redis相关数据结构及其原理和应用
双子孤狼
关注孤狼,和孤狼一起学习!
知道的多一点,不知道的就少一点!
创作不易,如需转载,请注明出处!
展开
-
如何从10亿数据中快速判断是否存在某一个元素
布隆过滤器如何删除元素原创 2021-02-26 11:02:49 · 3484 阅读 · 11 评论 -
不能回滚的Redis事务还能用吗
Redis有事务吗原创 2021-02-23 11:07:09 · 2899 阅读 · 12 评论 -
内存耗尽后Redis会发生什么
7种内存淘汰策略原创 2021-02-14 10:56:49 · 3086 阅读 · 12 评论 -
要想用活Redis,Lua脚本是绕不过去的坎
为什么要使用Lua脚本原创 2021-02-08 14:00:58 · 2120 阅读 · 13 评论 -
作为一款内存数据库,为什么断电后Redis数据不会丢失
RDB和AOF持久化机制原创 2021-01-30 09:58:30 · 3305 阅读 · 11 评论 -
同一份数据,Redis为什么要存两次
有序集合为什么要同时用跳表(skipkist)和字典来存储原创 2021-01-24 20:51:26 · 2335 阅读 · 14 评论 -
Redis中哈希分布不均匀该怎么办
Redis 为什么要选择 渐进式 rehash操作原创 2021-01-20 21:20:45 · 3126 阅读 · 2 评论 -
为了加快速度,Redis都做了哪些“变态”设计
为什么列表对象要使用quicklist来进行存储原创 2021-01-17 21:29:56 · 1934 阅读 · 11 评论 -
牺牲速度来节省内存,Redis是觉得自己太快了吗
Redis为什么要用时间换空间原创 2021-01-15 10:57:39 · 2237 阅读 · 12 评论 -
一个简单的字符串,为什么 Redis 要设计的如此特别
学习Redis,必须从二进制安全字符串sds开始原创 2021-01-11 11:31:33 · 2566 阅读 · 9 评论 -
Redis为什么这么快
Redis到底是单线程还是多线程原创 2021-01-09 11:08:33 · 2629 阅读 · 13 评论 -
【Redis系列9】手把手带你搭建单机版高可用分布式Redis集群(Cluster)
主从复制,Sentinel(哨兵)机制,Redis Cluster集群原创 2020-12-02 19:32:30 · 2260 阅读 · 16 评论 -
【Redis系列8】如何利用一个支持元素删除的布隆过滤器来解决缓存穿透问题
面试题1:如何解决缓存穿透,缓存击穿和缓存雪崩问题面试题2:如何在海量(如10亿)的无序的数据中快速判断一个元素是否存在原创 2020-11-29 11:34:07 · 3232 阅读 · 32 评论 -
【Redis系列7】Redis高级特性之发布/订阅和Lua脚本执行原理分析
Redis高级特性之发布/订阅和Lua脚本执行原理分析前言发布与订阅基于频道的实现实现原理分析基于模式的实现实现原理分析Lua脚本Lua脚本的调用Lua脚本中执行Redis命令Lua脚本摘要Lua脚本文件脚本异常脚本超时脚本陷入死循环为什么可以执行script kill命令总结前言Redis当中除了之前介绍的事务,持久化等高级特性之外,还提供了发布与订阅,Lua脚本,事件机制等高级特性,本文会继续介绍Redis的另外两大高级特性:发布与订阅和Lua脚本。发布与订阅理论上来说通过双端链表就可以实现发布原创 2020-11-25 18:06:47 · 1572 阅读 · 13 评论 -
【Redis系列6】Redis事务ACID特性和内存回收及RDB和AOF持久化原理分析
Redis事务ACID特性和内存回收及RDB和AOF持久化原理分析前言事务Redis居然有事务?Redis事务实现原理Redis事务ACID特性A-原子性Redis中的事务为什么不会滚C-一致性I-隔离性D-持久性WATCH命令watch命令的作用watch原理分析内存回收过期策略淘汰策略LRU算法Redis改进后的LRU算法Redis如何管理热度数据LFU算法访问频次递增访问频次递减Redis持久化机制RDB机制RDB机制触发条件自动触发手动触发RDB机制相关配置文件RDB机制优点RDB机制缺点AOF机制原创 2020-11-22 11:15:19 · 1308 阅读 · 2 评论 -
【Redis系列5】Redis(有序)集合对象之intset(整数集合)和skiplist(跳跃表)实现原理分析
Redis集合对象之intset和skiplist实现原理分析前言集合对象intset编码encodingcontents[]整数集合的升级升级举例hashtable编码intset和hashtable编码转换有序集合对象skiplist编码跳跃表skiplist的存储结构为什么同时选择使用字典和跳跃表ziplist编码ziplist和skiplist编码转换总结前言上一篇我们分析了列表对象的底层存储结构linkedlist,ziplist和quicklist的实现原理,并将这三种数据结构进行了分析对比原创 2020-11-18 20:43:28 · 1365 阅读 · 1 评论 -
【Redis系列4】Redis哈希对象之hashtable(哈希表)和ziplist(压缩列表)实现原理分析
Redis哈希对象之hashtable和ziplist实现原理分析前言哈希对象hashtable字典rehash操作rehash步骤渐进式rehashziplistziplist和hashtable的编码转换总结前言上一篇我们分析了列表对象的底层存储结构linkedlist,ziplist和quicklist的实现原理,并将这三种数据结构进行了分析对比。这一篇我们继续分析Redis中5种常用数据类型的第3种基本数据类型哈希对象的底层存储结构。哈希对象哈希对象本身也是一个key-value存储结构,底原创 2020-11-15 18:22:16 · 3869 阅读 · 11 评论 -
【Redis系列3】Redis列表对象之linkedlist(双端列表)和ziplist(压缩列表)及quicklick(快速列表)实现原理分析
Redis列表对象之linkedlist和ziplist实现原理分析前言列表对象linkedlistlinkedlist存储结构ziplistziplist存储结构entry存储结构prevlenencodingentry-dataziplist数据示例ziplist连锁更新问题linkedlist和ziplist的选择quicklistquicklist内部存储结构quicklist的compress属性quicklistNode的zl指针quicklist对比原始两种列表的改进总结前言上一篇我们分析原创 2020-11-10 11:27:25 · 3524 阅读 · 7 评论 -
【Redis系列2】Redis字符串对象之SDS(简单动态字符串)实现原理分析
Redis字符串对象之SDS实现原理分析前言字符串对象为什么Redis的字符串对象是二进制安全的SDS空间分配策略空间预分配惰性空间释放SDS和C语言字符串区别SDS的底层存储对象dictEntry对象redisObject对象类型type编码encodingembstr编码为什么从39位修改为44位embstr编码和raw编码的区别最近访问时间lru引用计数refcount总结前言上一篇我们介绍了Redis中支持的9种数据类型及其简单的使用,但是也仅仅只限于使用,从这一篇开始,我们会逐步分析每一种数据原创 2020-11-07 10:29:36 · 2179 阅读 · 16 评论 -
Redis系列1 看完这一篇Redis就入门了 Redis中9种基本数据类型及常用操作命令和应用场景
Redis基本数据类型前言为什么需要NoSql数据库什么是RedisRedis基本知识介绍常用数据库操作命令Redis数据类型1.Binary-safe strings(二进制安全字符串)常用命令应用场景2.Lists(列表)常用命令3.Sets(集合)常用命令4.Sorted Sets(有序集合)常用命令5.Hashes(哈希)常用命令应用场景6.Bit arrays (or simply bitmaps)位图常用命令应用场景7.HyperLogLogs常用命令应用场景8.geospatial(地理位置)原创 2020-10-19 11:22:02 · 45991 阅读 · 10 评论