Redis
文章平均质量分 68
总结Redis相关知识点
chuyufengling
这个作者很懒,什么都没留下…
展开
-
Redis面试题
1.基于内存存储2.高效的数据结构3.IO多路复用4.单线程2.原创 2023-12-15 23:00:00 · 814 阅读 · 0 评论 -
Redis底层数据结构
String的底层是(简单动态字符串)List的底层是(双向链表和压缩链表)Hash的底层是(压缩链表和哈希表)Set的底层是(整数数组和哈希表)Sorted Set底层(压缩链表和跳表)原创 2023-06-10 22:15:15 · 102 阅读 · 0 评论 -
Redis多路复用,线程
用 select、poll、epoll 可以同时监察多个流的 I/O 事件的能力,在空闲的时候,会把当前线程阻塞掉,当有一个或多个流有 I/O 事件时,就从阻塞态中唤醒,然后程序就会轮询一遍所有的流(epoll 是只轮询那些真正发出了事件的流),并且依次顺序的处理就绪的流,这种做法就避免了大量的无用操作。但是在Redis6.0之后,执行这三个操作可以是多线程,如线程1执行readIO,线程2执行计算,线程1再执行writeIO。因此需要多路复用,只有当有IO流(客户端发送命令的时候)才会去轮询。原创 2023-06-10 22:14:14 · 173 阅读 · 0 评论 -
Redis队列
使用Lpush和Rpop命令来放入和读取消息。缺点:当List中无数据时候,由于代码中会不断循环读取数据,Rpop命令不会停止,会一直运行,浪费cpu。改进:1、设置休眠时间,没隔一段休眠时间再读取。2、使用BRPOP阻塞式,当有消息来的时候才会读取。但仍有缺陷:1、不支持多个消费者消费同一条消息,2、消息丢失。当有消费者使用pop命令之后,这条消息就从链表中删除了,其他消费者也无法消费。原创 2023-06-10 22:10:13 · 191 阅读 · 0 评论