Redis必知必会

本文详细介绍了 Redis 的基本数据结构,包括 ziplist、quicklist、listpack、string、list、hash、set 和 Zet 的设计与实现。讲解了 Redis 为何使用这些数据结构以及它们各自的优缺点,例如 ziplist 避免连锁更新的问题,quicklist 结合了链表和 ziplist 的优点,listpack 的内存优化。此外,还涵盖了 Redis 的持久化、主从复制、分布式锁、内存回收策略等核心概念。最后讨论了 Redis 的线程模型、Pika 的特性和与其他 Redis 替代方案的对比,以及 Redis 在实际使用中可能遇到的问题和解决方案。
摘要由CSDN通过智能技术生成

目录

0.redis五种基本结构和实现

string

list

hash

set

Zet

redis为啥快

redis和memcached的区别

2.redis有哪些数据结构?

分布式锁

可能会问有哪些分布式锁

zookeeper实现分布式锁

redis实现分布式锁

4.如果有大量的key需要设置同一时间过期,一般需要注意什么

缓存和数据库一致性问题

5.删除大key/查找某个key

使用redis做异步队列,是怎么用

7.redis是怎么持久化的?

RDB:

AOF:

命令追加(append)

文件写入(write)和文件同步(sync)

AOF重写(rewrite)

数据恢复该如何设置

RDB和AOF的对比

8.跳表,redis为什么使用跳表而不是红黑树

9.redis乐观锁实现(CAS)

CAS什么时候用

10.select/poll/epoll

select :

如何突破文件描述符数量的限制

水平触发和边缘触发

如果 epoll 同个 socket 读到一半又有数据进入怎么处理

11.redis内存回收,删除

1、删除过期键对象

2、内存溢出控制策略

12.redis 主从复制原理

1. 连接建立阶段

步骤1:保存主节点信息

步骤2:建立socket连接

步骤3:发送ping命令

步骤4:身份验证

步骤5:发送从节点端口信息

2. 数据同步阶段

从节点是如何决定是全量复制还是增量复制的

全量复制:

增量复制:

(1)复制偏移量

(2)复制积压缓冲区

(3)服务器运行ID(runid)

 复制超时问题

复制中断问题

复制缓冲区溢出

各场景下复制的选择及优化技巧

3. 命令传播阶段

12.redis高可用

redis主从模式

redis哨兵

redis集群

其它集群方案

13.一致性哈希

14.使用redis过程中遇到的问题

十五、pika的了解

Pika是什么

与Redis的比较

优势:

劣势:

适用场景

Pika的特点

Redis 的线程模型了解么?

使用redis过程中遇到的问题

十七、redis 布隆过滤器的实现。




0.redis基本结构和实现

ziplist

各部分的含义如下:

zlbytes:整个压缩列表占用字节数,包含本身
 zltail_offset:最后一个元素距离压缩列表起始位置的偏移量,用于快速定位到最后一个节点,从而可以在ziplist尾部快速的执行push,pop操作
zllength:元素个数,该字段只有16bit所以可以表达的最大值为2^16-1,如果ziplist元素超了该值呢?这里规定,如果zllength小于等于   2^16-2,该字段表示为ziplist中元素的个数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小卒曹阿瞒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值