腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华 | 您所在的位置:网站首页 › crud的意思 › 腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华 |
前言 作为这个时代码代码的秃头人员,对Redis肯定是不陌生的,如果连Redis都没用过,还真不好意思出去面试,指不定被面试官吊打多少次。 毕竟现在互联网公司和一些创业公司都要用到Redis,像亚马逊、谷歌、阿里、腾讯都要使用,可见精通Redis使用真的很有必要。 所以,今天则分享出腾讯云大神亲自码出的“redis深度笔记”,笔记内容没有讲一句废话,全篇看下来都是精华! PART1:Redis深度笔记开篇1.Redis可以用来做什么? 由Redis面试想到的Redis可以做什么?2.Redis基础数据结构 Redis安装Redis基础的数据结构容器型数据结构的通用规则关于Redis使用的一些思考PART2:Redis的应用总结1.分布式锁 分布式锁超时问题可重入性2.延时队列 异步消息队列?队列空了怎么办?队列延迟空闲连接自动断开锁冲突处理延时队列的实现进一步优化3.位图 基本使用统计和查找魔术指令 bitfield4.HyperLogLog 使用方法pfadd这个pf是什么意思?pfmerge适合什么场合用?注意事项HyperLogLog实现原理pf的内存占用为什么是12k?5.布隆过滤器 布隆过滤器是什么?Redis中的布隆过滤器布隆过滤器的基本使用注意事项布隆过滤器的原理空间占用估计实际元素超出时,误判率会怎样变化?用不上Redis4.0怎么办?布隆过滤器的其他应用6.简单限流 如何使用Redis来实现简单限流策略?7.漏斗限流 Redis-Cell一些思考8.GeoHash 用数据库来算附近的人GeoHash算法Redis的Geo指令基本使用9.Scan scan基础使用字典的结构scan遍历顺序字典扩容对比扩容缩容前后的遍历顺序渐进式rehash更多的scan指令大Key扫描PART3:Redis的原理1.线程IO模型 非阻塞IO事件轮询(多路复用)指令队列响应队列定时任务2.通信协议 RESP(Redis Serialization Protocol)客户端->服务端服务端->客户端3.持久化 快照原理fork(多进程)AOF原理AOF重写fsync运维Redis4.0混合持久化4.管道 Redis的消息交互管道压力测试深入理解管道本质5.事务 Redis事务的基本使用原子性discard(丢弃)优化Watch6.PubSub 消息多播PubSub模式订阅消息结构PubSub缺点7.小对象压缩 32bit vs 64bit小对象压缩存储(ziplist)内存回收机制内存分配算法8.主从同步 CAP原理最终一致主从同步增量同步快照同步增加从节点无盘复制Wait指令PART4:Redis集群1.Sentinel 消息丢失Sentinel基本使用2.Codis Codis分片原理不同的Codis实例之间槽位关系如何同步?扩容自动均衡Codis的代价Codis的优点MGET指令的操作过程架构变迁Codis的尴尬Codis的后台管理3.Cluster 槽位定位算法跳转迁移容错网络抖动可能下线(PFAIL-Possibly Fail)与确定下线(Fail)Cluster基本使用槽位迁移感知集群变更感知PART5:Redis拓展1.Stream 消息ID消息内容增删改查独立消费创建消费组消费Stream消息太多怎么办?消息如果忘记ACK会怎样?PEL如何避免消息丢失?Stream的高可用分区Partition2.Info指令 Redis每秒执行多少次指令?Redis连接了多少客户端?Redisn内存占用多大?复制积压缓存区多大?3.再谈分布式锁 Redlock算法Redlock使用场景4.过期策略 过期的key集合定时扫描策略从库的过期策略5.LRU LRU算法近似LRU算法6.懒惰删除 Redis为什么要懒惰删除(lazy free)?flush异步队列AOF Sync也很慢更多异步删除点7.优雅地使用Jedis 重试8.保护Redis 指令安全端口安全Lua脚本安全SSL代理9.Redis安全通信 spiped原理spiped使用入门PART6:源码1.探索字符串内部结构 embstr vs raw扩容策略2.探索字典内部 dict 内部结构渐进式rehash查找过程hash 函数hash攻击扩容条件缩容条件set的结构3.探索压缩列表内部 增加元素级联更新IntSet 小整数集合4.探索快速列表内部 每个ziplist存多少元素?压缩深度5.探索跳跃列表内部结构 基本结构查找过程随机层数插入过程删除过程更新过程如果score值都一样呢?元素排名是怎么算出来的?6.探索紧凑列表内部 级联更新取代ziplist7.探索基数树内部 应用结构增删节点总结最后,我想说的是,学习并非难事,而贵在坚持,尤其是在我们参与工作之后,要继续坚持学习就更不容易了。但对于程序员来说,学习是立业之根本,如若放弃学习,被市场淘汰是迟早的事情。所以,学习更多新的知识对于自己来说才是一种更大的投资。 以上,到此结束。 |
CopyRight 2018-2019 实验室设备网 版权所有 |