![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 83
皮卡猴
中科院硕士,喜欢写写画画的理工宅男,信奉爱生活,爱coding的理想生活状态。目前正在准备论文和2022届秋招!
展开
-
Redis学习笔记二、数据库
数据库 Redis数据库结构体在源码中定义为redis.h/redisDb结构体,结构体并不复杂,其中仅仅含有8个字段,理解*dict、*expires、id三个字段即可。/* Redis database representation. There are multiple databases identified * by integers from 0 (the default database) up to the max configured * database. The datab原创 2021-04-24 21:57:50 · 224 阅读 · 0 评论 -
Redis学习笔记九、C/S通信模型
C/S通信模型 Redis服务器是一个事件驱动程序,它基于Reactor模式开发了自己的网络事件处理器,称为文件事件处理器(file event handler)。1. File Event Handler 文件事件处理器使用I/O多路复用(Multiplexing)程序来同时监听多个socket,并为socket关联不同的事件处理器。当被监听的套接字准备好执行accept、read、write、close等操作时,与之对应的文件事件就会产生。2. I/O多路复用程序实现 Redis IO原创 2021-04-24 21:22:43 · 436 阅读 · 0 评论 -
Redis学习笔记六、集群
集群 Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。1. 节点原创 2021-04-24 16:31:23 · 239 阅读 · 0 评论 -
Redis学习笔记五、哨兵(Sentinel)
哨兵(Sentinel)1. 简介 Redis2.8开始提供了Sentinel架构,哨兵是Redis的高可用(high availability)解决方案:由一个或者多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后又新的主服务器代替已下线的主服务器继续处理命令请求。1.1. 主节点故障转移 假设现在server1为主服务器,当server原创 2021-04-24 16:22:42 · 1634 阅读 · 0 评论 -
Redis学习笔记四、主从复制
主从复制1. SLAVEOF命令 用户可以通过SLAVEOF命令让一个服务器去复制另一个服务器,被复制的服务器称为Master,本服务器称为Slave。进行复制中的主从服务器双方的数据库会保存相同的数据,称为数据库的状态一致性。2. Redis2.8之前的主从复制 Redis复制功能分为同步(sync)和命令传播(command propagate)。同步操作是由从服务器发送SYNC命令触发的;命令传播命令是由主服务器发起的。2.1. 同步(SYNC) 从服务器客户端向主服务器发送SLAV原创 2021-04-24 11:28:09 · 125 阅读 · 0 评论 -
Redis学习笔记一、数据类型
数据类型1. 概述 Redis(Remote Dictionary Server)是速度非常快的非关系型(NOSQL)内存键值数据库。2. 五种数据类型 键的类型只能是字符串;值支持五种数据类型:String、List、Set、Hash、ZSet。...原创 2021-04-12 09:24:45 · 376 阅读 · 0 评论 -
Redis学习笔记八、Redis速度
Redis速度1. Redis单线程模型 我们都知道Redis是缓存数据库,数据存放在内存中,然而Redis却使用单线程模型设计,这与我们的固有观念相冲突,为什么单线程的程序可以经受住百万级并发的考验呢? 事实上,Redis4.0之后的版本开始抛弃单线程模型这一设计,这样一来,原本使用单线程模型的Redis,也开始选择性的使用多线程模型。1.1. Redis最初版本为什么使用单线程模型进行设计?Redis服务中运行的绝大多数操作的性能瓶颈都不是CPU。 我们在一个普通的 Lin原创 2021-04-06 19:46:24 · 150 阅读 · 0 评论 -
Redis学习笔记七、缓存穿透、缓存击穿、缓存雪崩
缓存穿透、缓存击穿、缓存雪崩 Redis缓存的使用,极大提升了应用程序的性能和效率,特别是数据查询方面。但也带来一些问题。 数据一致性问题:从严格意义上讲,这个问题无解,如果对数据一致性要求很高,就不能使用缓存。 另一些问题:缓存穿透、缓存击穿、缓存雪崩1. 缓存穿透 用户想要查一个数据,发现redis内存数据库没有,称缓存没有命中。于是,向持久层数据库查询,发现也没有,此次查询失败。 很多用户查询时,缓存都没有命中,都要向持久层要数据,这就给持久层数据库造成很大压力,称为缓存穿透 。原创 2021-04-06 14:40:46 · 170 阅读 · 0 评论 -
Redis学习笔记三、持久化方式
Redis持久化方式 Redis(Remote Dictionary Server)是非关系型的键值对数据库,可以根据键以O(1)的时间复杂度取出或插入关键值。数据是存在内存中的。 Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘中,一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能。1. RDB(Redis Database) RDB持久化存储就是在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是快照,它恢复时是将快照文件直接读到内存里。 R原创 2021-04-06 10:57:31 · 419 阅读 · 0 评论