腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华 您所在的位置:网站首页 crud的意思 腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

2023-04-11 11:30| 来源: 网络整理| 查看: 265

前言

作为这个时代码代码的秃头人员,对Redis肯定是不陌生的,如果连Redis都没用过,还真不好意思出去面试,指不定被面试官吊打多少次。

毕竟现在互联网公司和一些创业公司都要用到Redis,像亚马逊、谷歌、阿里、腾讯都要使用,可见精通Redis使用真的很有必要。

所以,今天则分享出腾讯云大神亲自码出的“redis深度笔记”,笔记内容没有讲一句废话,全篇看下来都是精华!

PART1:Redis深度笔记开篇

1.Redis可以用来做什么?

由Redis面试想到的Redis可以做什么?

2.Redis基础数据结构

Redis安装Redis基础的数据结构容器型数据结构的通用规则关于Redis使用的一些思考PART2:Redis的应用总结

1.分布式锁

分布式锁超时问题可重入性

2.延时队列

异步消息队列?队列空了怎么办?队列延迟空闲连接自动断开锁冲突处理延时队列的实现进一步优化

3.位图

基本使用统计和查找魔术指令 bitfield

4.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(丢弃)优化Watch

6.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的高可用分区Partition

2.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.探索紧凑列表内部

级联更新取代ziplist

7.探索基数树内部

应用结构增删节点总结

最后,我想说的是,学习并非难事,而贵在坚持,尤其是在我们参与工作之后,要继续坚持学习就更不容易了。但对于程序员来说,学习是立业之根本,如若放弃学习,被市场淘汰是迟早的事情。所以,学习更多新的知识对于自己来说才是一种更大的投资。

以上,到此结束。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有