![](https://img-blog.csdnimg.cn/3a1d55b4eed24fad88a5ebf256672caf.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
《Redis从入门到精通》系列
文章平均质量分 91
Redis全面技能包,一应俱全
李子捌
CSDN博客专家、InfoQ 100大签约作者、阿里云博客专家、华为云专家
展开
-
Redis高频面试题汇总(2021最新版)
本文已收录于专栏上千人点赞收藏,全套Redis高频面试题,大厂必备技能!面试官心理分析从面试官的角度分析,出这道题的目的是为了考察你对缓存的认知水平,以及结合缓存处理业务、改善架构的能力。这道题很明显是让你自由发挥,给了你引领面试官往自己最熟悉的知识点引导的机会,所以要尽可能的把握这次机会,给面试官一个好的印象。这道题聊得好,就是能深入交流个把小时了,如果是一面基本上能轻轻松松拿下。 但是千万不要上来就把话题聊死了,聊太浅了,那基本就是回去等通知了…… 比如以下这种回答方式:...原创 2021-10-15 08:00:00 · 1796 阅读 · 17 评论 -
要看就看最好,16万字全网最硬核redis总结,谁赞成,谁反对?(被粉丝疯狂催更,已有人反馈看完专栏拿到大厂offer!!!)
被粉丝疯狂催更,已有人反馈看完专栏拿到大厂offer,非常适合应届毕业生和初中级工程师!!!原创 2021-10-10 21:30:39 · 9767 阅读 · 40 评论 -
Redis该怎么学?其实很简单,这份学习路线+资料+书单我全部贡献出来了!
前言这绝对不是一篇水文,进来的兄弟们千万不要白嫖,真香警告⚠️。(点赞!!!)这篇文章很早前就打算写了,特地留到现在是因为我想把Redis系列的文章全部更完,能让需要的小伙伴们有个系统的栏目学习,而不是一些零落的知识点(其实是这期间我打球把腿摔断了)。为了总结这个专栏我看了很多Redis 的书籍、博客、各种资料,仔细研究了两个月后总结下来了三十多篇文章,总共十几万字,它们都赤身白条,静静地躺在我的专栏那里,等着你们去光顾光顾!!!我相信我的文章读者大部分都是学生,或者应届毕业生,也原创 2021-10-10 00:19:35 · 6571 阅读 · 15 评论 -
⭐Redis分布式——主从复制、Sentinel、集群彻底吃透⭐(看完这篇万字长文,你的Redis水平将会上升一个层次)
本文已收录于专栏❤️《Redis精通系列》❤️上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录一、主从复制1、简介2、主从复制的演进2.1 版本2.8以前2.2 版本2.8-4.02.3 版本4.0二、Sentinel1、简介2、Sentinel初始化与网络连接2.1 初始化Sentinel服务器2.2 替换普通Redis代码为Sentinel的专用代码2.3 初始化Sentinel状态2.4 初始化Sentinel监视的主服...原创 2021-10-09 00:42:19 · 1073 阅读 · 13 评论 -
Redis集群详述(从服务内部讲解,这次看完真的懂了,面试官再怎么问也能轻轻松松!)
本文已收录于专栏❤️《Redis精通系列》❤️上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录1、简介2、集群内部2.1 clsuterNode2.2 clusterLink2.3 custerState3、集群工作3.1 槽(slot)如何指派?3.2 ADDSLOTS 在Redis集群内部是如何实现的呢?3.3 集群这么多节点,客户端怎么知道请求哪个节点?3.4 如果我想将已经分配给A节点的槽重新分配给B节点,怎么整?3.5 如果客...原创 2021-10-09 00:23:31 · 1334 阅读 · 11 评论 -
❤️假如面试官让你聊聊Sentinel(哨兵),看完这篇文章足矣!❤️
本文已收录于专栏❤️《Redis精通系列》❤️上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录1、简介2、Sentinel初始化与网络连接2.1 初始化Sentinel服务器2.2 替换普通Redis代码为Sentinel的专用代码2.3 初始化Sentinel状态2.4 初始化Sentinel监视的主服务器列表2.5 创建连接主服务器的网络连接2.6 创建连接从服务器的网络连接2.7 创建Sentinel之间的网络连接3、Sentinel工..原创 2021-10-04 20:53:02 · 2011 阅读 · 12 评论 -
Redis分布式基石——主从复制技术详述
本文已收录于专栏❤️《Redis精通系列》❤️上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录1、简介2、主从复制的演进2.1 版本2.8以前2.1.1 同步2.1.2 命令传播2.1.3 缺陷2.2 版本2.8-4.02.2.1 改进点2.2.2 psync如何实现2.2.3 完整的psync2.3 版本4.01、简介主从复制是Redis分布式的基石,也是Redis高可用的保障。在Redis中,被复制的服务器称为主服务器(Mast.原创 2021-10-02 00:04:51 · 1072 阅读 · 8 评论 -
Redis精通系列——info 指令用法
本文已收录于专栏❤️《Redis精通系列》❤️上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录1、简介2、info/info all3、info server4、info clients5、info memory6、info persistence7、AOF8、loading9、status10、info replication11、info CPU12、info cluster13、info keyspace1、简介Re..原创 2021-09-24 23:30:43 · 3939 阅读 · 3 评论 -
Redis精通系列——LFU算法详述(Least Frequently Used - 最不经常使用)
本文已收录于专栏❤️《Redis精通系列》❤️上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录1、简介2、实现方式2.1 LRU实现方式2.2 LFU实现方式3、LFU使用3.1 配置文件开启LFU淘汰算法1、简介LRU有一个明显的缺点,它无法正确的表示一个Key的热度,如果一个key从未被访问过,仅仅发生内存淘汰的前一会儿被用户访问了一下,在LRU算法中这会被认为是一个热key。例如如下图,keyA与keyB同时被set到Redis中,在内存淘汰..原创 2021-09-23 23:51:28 · 4535 阅读 · 18 评论 -
Redis精通系列——LRU算法详述(Least Recently Used - 最近最少使用)
本文已收录于专栏❤️❤️上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录1、简介2、maxmemory配置3、内存达到maxmemory怎么办4、LRU算法实现5、Redis的近似LRU6、存在问题1、简介Redis是基于内存存储的key-value数据库,我们知道内存虽然快但空间小,当物理内存达到上限时,系统就会跑的很慢,这是因为swap机制会将部分内存的数据转移到swap分区中,通过与swap的交换保证系统继续运行;但是swap属于硬盘存储,速度..原创 2021-09-18 00:40:55 · 1823 阅读 · 6 评论 -
Redis精通系列——过期策略
本文已收录于专栏《Redis精通系列》上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录1、简介2、过期策略2.1 主动删除2.2 被动删除3、如何正确的设置key的过期时间4、从节点存在的问题1、简介Redis的数据结构均可以通过EXPIRE key seconds 的方式设置key的过期时间(TTL)。我们也习惯的认为Redis的key过期时间到了,就会自动删除,显然这种想法并不正确。Redis的设计考虑到性能/内存等综合因素,设计了一套过期策略。..原创 2021-09-16 22:38:45 · 981 阅读 · 3 评论 -
Redis精通系列——Stream
本文已收录于专栏《Redis精通系列》上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录1、简介2、Stream内部探索2.1 Stream 结构2.2 四个唯一2.3 消息ID2.4 消息内容3、Stream指令3.1 指令汇总3.2 XADD3.2 XTRIM3.3 XDEL3.4 XLEN3.5 XRANGE3.6 XREVRANGE3.7 XREAD3.8 XGROUP CREATE3.9 XREADGROU..原创 2021-09-16 00:26:25 · 2404 阅读 · 7 评论 -
Redis精通系列——Pub/Sub(发布订阅)
本文已收录于专栏《Redis精通系列》上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录1、简介2、实例演示2.1 普通订阅2.2 模式订阅3、Pub/Sub为什么被抛弃1、简介李子捌把话说在前头,如果你是面试或者为了了解知识来学习这一知识点,我觉得是有必要的;但是如果你是作为公司的技术负责人或者项目技术选型来使用Redis的Pub/Sub做消息的发布订阅,如果你不是走投无路了,那么你可能值得斟酌一下。Redis的Pub/Sub发布订阅,是Redis一步步..原创 2021-09-15 00:21:38 · 9442 阅读 · 6 评论 -
Redis精通系列——Pipeline(管道)
本文已收录于专栏《Redis精通系列》上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录1、简介2、深究pipeline3、benchmark压测pipeline4、Jedis使用pipeline1、简介Redis是一种基于客户端-服务端模型以及请求/响应的TCP服务。一次Redis客户端发起的请求,经过服务端的响应后,大致会经历如下的步骤:客户端发起一个(查询/插入)请求,并监听socket返回,通常情况都是阻塞模式等待Redis服务器的响应 服务..原创 2021-09-14 22:57:06 · 9590 阅读 · 3 评论 -
Redis事务详述
本文已收录于专栏❤️《Redis之大厂必备技能包》❤️上千人点赞收藏,全套Redis学习资料,大厂必备技能!目录1、简介2、指令介绍2.1 简介2.2 MULTI(开启事务)2.3 EXEC(执行事务)2.4 DISCARD(取消事务)2.5 WATCH(监视)2.6 UNWATCH3、Jedis 使用事务1、简介Redis类似大多数成熟的数据库系统一样,提供了事务机制。Redis的事务机制非常简单,它没有严格的事务模型,无法像关系型数据库一样保...原创 2021-09-10 00:33:00 · 548 阅读 · 3 评论 -
Redis-Cell令牌桶限流详述
本文已收录于专栏❤️《Redis之大厂必备技能包》❤️上千人点赞收藏的,全套Redis学习资料,大厂必备技能!目录1、简介2、Redis-Cell的安装2.1 GitHub源码&安装包2.2 安装&异常处理3、CL.THROTTLE指令4、Java调用Redis-Cell模块实现限流4.1 导入依赖4.2 实现代码1、简介令牌桶算法比较简单,它就好比摇号买房,拿到号的人才有资格买,没拿到号的就只能等下次了(还好小编不需摇号,因为买不起!)。原创 2021-09-09 00:19:34 · 1688 阅读 · 4 评论 -
漏斗限流详述
本文已收录于专栏❤️《Redis之大厂必备技能包》❤️上千人点赞收藏的,全套Redis学习资料,大厂必备技能!目录1、需求2、常见的错误设计3、漏斗限流3.1 解决方案3.2 Java代码实现3.3 结合Redis实现4、总结1、需求限定用户的某个行为在指定时间T内,只允许发生N次。假设T为1秒钟,N为1000次。2、常见的错误设计程序员设计了一个在每分钟内只允许访问1000次的限流方案,如下图01:00s-02:00s之间只允许访问1000次,这种设原创 2021-09-08 00:16:12 · 1278 阅读 · 7 评论 -
Redis之zset实现滑动窗口限流
本文已收录于专栏❤️《Redis之大厂必备技能包》❤️上千人点赞收藏的,全套Redis学习资料,大厂必备技能!目录1、需求2、常见的错误设计3、滑动窗口算法3.1 解决方案3.2 pipeline代码实现3.3 lua代码实现1、需求限定用户的某个行为在指定时间T内,只允许发生N次。假设T为1秒钟,N为1000次。2、常见的错误设计程序员设计了一个在每分钟内只允许访问1000次的限流方案,如下图01:00s-02:00s之间只允许访问1000次,这种设计.原创 2021-09-06 23:58:13 · 4284 阅读 · 17 评论 -
布隆(Bloom Filter)过滤器——全面讲解,建议收藏
本文已收录于专栏❤️《Redis之大厂必备技能包》❤️欢迎各位关注、三连博主的文章及专栏,全套Redis学习资料,大厂必备技能!目录1、什么是布隆过滤器2、布隆过滤器的使用场景3、布隆过滤器的原理3.1 数据结构3.2 空间计算3.3 增加元素3.4 查询元素3.5 修改元素3.6 删除元素4、Redis集成布隆过滤器4.1 版本要求4.2 安装&编译4.3 Redis集成5、Redis中布隆过滤器指令使用5.1 bf.add.原创 2021-08-29 16:45:43 · 80124 阅读 · 47 评论 -
Redis安装布隆(Bloom Filter)过滤器
本文已收录于专栏❤️《Redis之大厂必备技能包》❤️欢迎各位关注、三连博主的文章及专栏,全套Redis学习资料,大厂必备技能!目录一、版本要求二、安装&编译2.1 下载插件压缩包2.2 解压2.3 编译插件三、Redis集成3.1 Redis配置文件修改3.2 测试是否成功一、版本要求推荐版本6.x,最低4.x版本,可以通过如下命令查看版本:redis-server-v插件安装,网上大部分推荐v1.1.1,文章写的时候v2.2.6.原创 2021-08-28 20:36:50 · 2078 阅读 · 0 评论 -
❤️Bitmaps、HyperLogLog、Geospatial❤️——Redis三大特殊数据类型详述(万字长文原理讲解,大厂面试高频知识点,一文尽收囊中)
本文已收录于专栏❤️《Redis之大厂必备技能包》❤️欢迎各位关注、三连博主的文章及专栏,全套Redis学习资料,大厂必备技能!目录简介一、Bitmaps1、简介2 、基本操作2.1 SETBIT key offset value2.2 GETBIT key offset2.3 BITCOUNT key [start] [end]2.4 BITPOS key bit [start] [end]2.5 BITOP operation destkey key [k原创 2021-08-27 22:15:06 · 1442 阅读 · 25 评论 -
Geospatial-地理空间
本文已收录于专栏❤️《Redis之大厂必备技能包》❤️欢迎各位关注、三连博主的文章及专栏,全套Redis学习资料,大厂必备技能!目录一、简介二、命令2.1 GEOADD2.2 GEOPOS2.3 GEODIST2.4 GEORADIUS2.5 GEORADIUSBYMEMBER2.6 GEOHASH三、中国省会城市的经纬度一、简介Geospatial是Redis在3.2版本以后增加的地理位置GEO模块,这个模块可以用来实现微信附近的人,在线点餐“附近.原创 2021-08-26 21:43:48 · 1069 阅读 · 1 评论 -
HyperLogLog 使用及其算法原理详细讲解
目录一、简介二、命令2.1 PFADD key element [element …]2.2 PFCOUNT key [key …]2.3 PFMERGE destkey sourcekey [sourcekey …]三、原理3.1 伯努利试验3.2 估值优化3.3 HyperLogLog的实现3.4 代码实现-BernoulliExperiment(伯努利试验)3.5 代码实现-HyperLogLog一、简介首先抛出一个业务问题:假设产品经理让你设计一原创 2021-08-18 11:43:48 · 20467 阅读 · 13 评论 -
Bitmaps-位图
目录1、简介2 、基本操作2.1 SETBIT key offset value2.2 GETBIT key offset2.3 BITCOUNT key [start] [end]2.4 BITPOS key bit [start] [end]2.5 BITOP operation destkey key [key …]2.6 BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset原创 2021-08-08 16:15:59 · 982 阅读 · 5 评论 -
如果有人问你CAP理论是什么,你直接把这篇文章发给他!
1、什么是分布式系统CAP定理是分布式存储系统的基石,分布式系统(distributed system)指的是建立在网络上的软件系统,它是多个计算机节点通过协调工作的方式,共同完成任务的系统。分布式系统解决了单个计算机无法完成的计算和存储任务。但是分布式系统的设计十分复杂,设计者必定面临诸多挑战,比如节点故障、网络分区、异地网络等等问题。2、垂直扩展和水平扩展上面有说到分布式系统,分布式和水平扩展等概念经常会一起出现,文中也通过阅读资料和自己的理解总结一下计算机系统超负荷时,常用的两种扩展解原创 2021-07-20 23:34:03 · 1045 阅读 · 8 评论 -
Redis持久化AOF与RDB全面解析(大厂面试必问,看完之后offer直接到手,你学废了吗?)
目录1、简介2、RDB2.1 简介2.2 Fork2.3 自动触发2.2 手动触发2.3 RDB持久化文件的备份3、AOF3.1 简介3.2 AOF配置3.3 AOF修复功能3.4 AOF重写4、混合持久化5、总结1、简介Redis的非常快,很大一部分原因是因为Redis的数据存储在内存中,既然在内存中,那么当服务器宕机或者断电的时候,数据就会全部丢失了,所以Redis提供了两种机制来保证Redis数据不会因为故障而全部丢失,这种机制称为Red原创 2021-07-15 00:39:14 · 1600 阅读 · 37 评论 -
CentOS 7单机安装Redis Cluster(3主3从伪集群),仅需简单五步
首先安装单机版Redis(如下有全部教程)VMware安装CentOS(保姆级教程,建议收藏)VMware+CentOS 7 静态IP设置方法 —保姆级教程,建议收藏CentOS 7关闭防火墙CentOS安装单击RedisRedis一主二从Sentinel监控配置(保姆级教程)安装配置:服务IP Redis安装目录 192.168.211.107 /usr/local/soft/redis-6.2.4/ 第一步:创建数据目录创建不同的数据目录原创 2021-07-12 23:30:19 · 1146 阅读 · 13 评论 -
详解Redis分布式锁(图文并茂,手把手搭建服务,代码详解,建议收藏)
本文章涉及很多关联篇,如需要请自取VMware安装CentOS(保姆级教程,建议收藏)VMware+CentOS 7 静态IP设置方法 —保姆级教程,建议收藏CentOS 7关闭防火墙CentOS安装单击RedisRedis一主二从Sentinel监控配置(保姆级教程)一、简介分布式知识是考验一个程序员知识面广度和深度很好的度量标准,而分布式锁又是其中非常重要的一个知识点。可以说面试只要谈到分布式,没有不问分布式锁的。我们知道分布式应用在进行逻辑处理的时候经常涉及到并发.原创 2021-07-11 22:50:29 · 1682 阅读 · 14 评论 -
Redis一主二从Sentinel监控配置(保姆级教程)
一、环境准备Redis一主二从Sentinel监控配置如下:3个Sentinel实例(奇数个,选择Leader) Redis服务(一主二)。服务器资源有限的朋友们,可以通过VMware启动虚拟机的方式来构建环境,关于如何使用VMware安装虚拟机,网络配置、克隆、单实例Redis的安装在我的博文中都有保姆级教程,需要的请自取。资源清单:IP地址 节点角色 端口 192.168.211.104 Redis Master/ Sentinel 6379/26379原创 2021-07-11 00:22:20 · 1653 阅读 · 7 评论 -
CentOS安装Redis
1、创建安装目录为了方便管理我们一般统一软件的安装目录,这里选择安装的目录是 ->/usr/local/soft2、下载Redis我们通过wget命令从redis官网下载压缩包 -> https://redis.io/当前最新版本下载地址 -> https://download.redis.io/releases/redis-6.2.4.tar.gz1cd/usr/local/soft2wgethttps://download.redis.io/rel..原创 2021-07-10 17:51:42 · 1004 阅读 · 2 评论 -
你真的懂Redis的5种基本数据结构吗?这些知识点或许你还需要看看(图文并茂,浅显易懂,建议收藏)
一、简介Redis中所有的的数据结构都是通过一个唯一的字符串key来获取相应的value数据。Redis有5种基础数据结构,分别是:string(字符串) list(列表) hash(字典) set(集合) zset(有序集合)其中list、set、hash、zset这四种数据结构是容器型数据结构,它们共享下面两条通用规则:create if not exists:容器不存在则创建 drop if no elements:如果容器中没有元素,则立即删除容器,释放内存本文将详细讲述原创 2021-07-07 23:45:43 · 2565 阅读 · 23 评论 -
高级程序员必须精通的Redis,第五篇之——zset(有序集合)
1、简介Redis中所有的的数据结构都是通过一个唯一的字符串key来获取相应的value数据。Redis有5种基础数据结构,分别是:string(字符串) list(列表) hash(字典) set(集合) zset(有序集合)其中list、set、hash、zset这四种数据结构是容器型数据结构,它们共享下面两条通用规则:create if not exists:容器不存在则创建 drop if no elements:如果容器中没有元素,则立即删除容器,释放内存本文讲述的是R原创 2021-07-07 23:08:15 · 1405 阅读 · 5 评论 -
高级程序员必须精通的Redis,第四篇之——set(集合)
1、简介Redis中所有的的数据结构都是通过一个唯一的字符串key来获取相应的value数据。Redis有5种基础数据结构,分别是:string(字符串) list(列表) hash(字典) set(集合) zset(有序集合)其中list、set、hash、zset这四种数据结构是容器型数据结构,它们共享下面两条通用规则:create if not exists:容器不存在则创建 drop if no elements:如果容器中没有元素,则立即删除容器,释放内存本文讲述的是R原创 2021-07-07 23:05:54 · 667 阅读 · 5 评论 -
隔壁老王都会了,你竟然还不知道?Redis zset底层—Skip List跳跃列表(面试超级加分项)
一、简介跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。Skip List(跳跃列表)这种随机的数据结构,可以看做是一个二叉树的变种,它在性能上与红黑树、AVL树很相近;但是Skip List(跳跃列表)的实现相比前两者要简单很多,目前Redis的zset实现采用了Skip List(跳跃列表)(其它还有LevelDB等也使原创 2021-07-07 00:21:43 · 602 阅读 · 8 评论 -
Redis必知必会之zset底层—Skip List跳跃列表(面试加分项)
一、简介跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。Skip List(跳跃列表)这种随机的数据结构,可以看做是一个二叉树的变种,它在性能上与红黑树、AVL树很相近;但是Skip List(跳跃列表)的实现相比前两者要简单很多,目前Redis的zset实现采用了Skip List(跳跃列表)(其它还有LevelDB等也使原创 2021-07-06 23:44:43 · 1143 阅读 · 19 评论 -
高级程序员必须精通的Redis,第三篇之——hash(散列)
1、简介Redis中所有的的数据结构都是通过一个唯一的字符串key来获取相应的value数据。Redis有5种基础数据结构,分别是:string(字符串)list(列表)hash(字典)set(集合)zset(有序集合)其中list、set、hash、zset这四种数据结构是容器型数据结构,它们共享下面两条通用规则:create if not exists:容器不存在则创建drop if no elements:如果容器中没有元素,则立即删除容器,释放内存本文讲述的是Redis原创 2021-07-05 22:35:02 · 960 阅读 · 7 评论 -
高级程序员必须精通的Redis,第二篇之——list(列表)
1、简介Redis中所有的的数据结构都是通过一个唯一的字符串key来获取相应的value数据。Redis有5种基础数据结构,分别是:string(字符串)list(列表)hash(字典)set(集合)zset(有序集合)本文讲述的是Redis的5种基础数据结构中的list(列表)2、list(列表)相关介绍2.1 list(列表)的内部结构Redis的列表相当于Java语言中的LinkedList,它是一个双向链表数据结构(但是这个结构设计比较巧妙,后面会介绍),支持前后顺序遍原创 2021-07-05 00:05:51 · 1211 阅读 · 7 评论 -
高级程序员必须精通的Redis,第一篇之——string(字符串)
1、简介Redis中所有的的数据结构都是通过一个唯一的字符串key来获取相应的value数据。Redis有5种基础数据结构,分别是:string(字符串)list(列表)hash(字典)set(集合)zset(有序集合)本文讲述的是Redis的5种基础数据结构中的string(字符串)2、string(字符串)相关介绍2.1 string(字符串)的内部结构string(字符串)是Redis最简单也是使用最广泛的数据结构,它的内部是一个字符数组。如图所示:Redis中str原创 2021-07-03 23:28:23 · 1405 阅读 · 10 评论