Redis面试
文章平均质量分 81
丢丢diu丢
CSDN,做笔记用的……
展开
-
Redis——单线程模型、IO多路复用技术
1.单线程模型Redis 单线程指的是网络请求模块使用了一个线程,即一个线程处理所有网络请求;其他模块该使用多线程,仍会使用了多个线程。1.结构多个 SocketIO 多路复用程序文件事件分派器事件处理器(连接应答处理器、命令请求处理器、命令回复处理器)2.实现Redis 内部使用文件事件处理器 file event handler,这个文件事件处理器是单线程的,所以 Redis 才叫做单线程的模型。它采用 IO 多路复用机制同时监听多个 Socket,并把所有原创 2021-04-18 23:38:23 · 1457 阅读 · 3 评论 -
Redis+ZooKeeper—分布式锁、RedLock算法防止redis锁失效
1.什么是分布式锁?1.分布式锁应该具备哪些条件?1.在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行;2.高可用的获取锁与释放锁;3.高性能的获取锁与释放锁;4.具备可重入特性(可理解为重新进入,由多于一个任务并发使用,而不必担心数据错误);5.具备锁失效机制,防止死锁;6.具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败。2.分布式锁的实现Redis:利用setnx命令,此命令同样是原子性操作,只有在key不存在时,才能set成功。3.通过 Redis 分布原创 2021-04-18 23:22:54 · 525 阅读 · 1 评论 -
Redis—跳跃表、缓存一致性、雪崩、穿透、击穿
1.跳跃表1.跳跃表——本质是解决查找问题跳跃表(skiplist)是一种随机化的数据结构,是一种可以与平衡树媲美的层次化链表结构——查找、删除、添加等操作都可以在对数期望时间下完成,以下是一个典型的跳跃表例子:有序列表 zset 的数据结构,它类似于 Java 中的 SortedSet 和 HashMap 的结合体,一方面它是一个 set 保证了内部 value 的唯一性,另一方面又可以给每个 value 赋予一个排序的权重值 score,来达到 排序 的目的。有序列表 zset的内部原创 2021-04-18 22:09:26 · 388 阅读 · 0 评论 -
Redis面试——redis基础、5种数据类型、持久化、主从模式、哨兵
问题目录1.5种基本数据类型2.分布式锁3.缓存一致性4.缓存穿透、击穿、雪崩5.跳表1.Redis前言1.纯内存访问Redis将所有数据放在内存中,非数据同步正常工作中,是不需要从磁盘读取数据的,0次IO。Redis就是用C语言开发的,所以执行会比较快。2.单线程优点第一,单线程简化算法的实现,并发的数据结构实现不但困难且测试也麻烦。第二,单线程避免了线程切换以及加锁释放锁带来的消耗,对于服务端开发来说,锁和线程切换通常是性能杀手。缺点单线程也会有它的缺点,:阻塞。如果执行一.原创 2021-04-18 21:02:22 · 373 阅读 · 0 评论