redis原理图 redis原理动画解析

本文目录一览:

  • 1、Redis的五种数据结构及其底层实现原理
  • 2、Redis早期的主从架构原理分析,早期如何实现读写分离的?
  • 3、面试中问到Redis持久化的原理,本篇在做详细解答
Redis的五种数据结构及其底层实现原理redis是用C语言编写的,在C语言中 string 类型是用字符数组 char[] 来实现的 。
查询方式一般采用二分查找法,实际查询复杂度也就在log(n) Redis-有序集合对象(zset) 底层实现为 字典(dict) + 跳表(skiplist),当数据比较少的时候用ziplist编码结构存储 。
Set 就是一个集合,集合的概念就是一堆不重复值的组合 。利用 Redis 提供的 Set 数据结构,可以存储一些集合性的数据 。比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合 。
String类型对应的简单动态字符串到后面再说,集合类型的底层数据结构主要有 5 种:整数数组、双向链表、哈希表、压缩列表和跳表 。
Redis的hash类型其实就是一个缩减版的redis 。它存储的是键值对 , 将多个键值对存储到一个redis键里面 。hash类型的底层主要也是基于字典这种数据结构来实现的 。
Redis早期的主从架构原理分析,早期如何实现读写分离的?读写分离: 可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量 。
可以通过部署2台Redis服务器, 一台主 , 一台从 。然后写的操作在主库,读的操作可以在从库 。进行主从同步即可 。这样就可以 , 一台写,多台从,所有读的请求全部在从库那边操作 。增强Redis的并发能力 。主从配置,比较简单 。
主从复制可以将写操作集中在主节点,仅让从节点负责读取数据,从而实现读写分离,并提高Redis集群的性能 。
上一篇文章Redis主从复制原理中简要地说明了主从复制的一个基本原理,包含全量复制、复制积压缓冲区与增量复制等内容 , 有兴趣的同学可以先看下 。利用主从复制,可以实现读写分离、数据备份等功能 。
针对完整的重同步的缺陷,Redis提供了部分的重同步功能 。
传统的Redis集群采用的主从复制模式,一般为一主多从,主节点有读写权限,但是从节点只有读的权限 。主节点会定期将数据同步到从节点中,保证数据一致性的问题 。
面试中问到Redis持久化的原理,本篇在做详细解答可在redis.conf中配置,会以一段时间内达到指定修改的次数为规则来触发快照操作,快照文件名为dump.rdb 。每当Redis服务重启的时候都会从该文件中把数据加载到内存中 。在60秒内有10000次操作即触发RDB持久化 。
RDB 持久化机制 :是对 redis 数据执行周期性的持久化 。这种方式就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为 dump.rdb 。客户端也可以使用save或者bgsave命令通知redis做一次快照持久化 。
AOF(append only file)持久化:以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的 。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式 。
【redis原理图 redis原理动画解析】redis提供两种方式进行持久化 , 一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件) 。

    推荐阅读