我们知道学习一个技术,最好的方式就是从全局观出发,然后针对不同的点进行拆分,一个个破解。既可以将学到的和已有的知识联系起来,又可以有一定的深度和目的性。

Redis基础架构


对于一个中间件来说,一个是使用层面(应用层面),另一个就是核心原理(系统纬度)。
对于Redis来说应用纬度包括

  • 缓存应用:相应的使用场景,引出的问题等
  • 集群应用:为实现高可用,高性能,必然使用集群模式
  • 数据结构应用:不同的数据结构可以解决不同的问题。比如hash可以快速查找

对于系统纬度来说:

  • 高性能主线:

    • 线程模型:(单线程、多线程、Reactor模式等)
    • 数据结构
    • 持久化
    • 网络框架
  • 高可靠主线:
    • 主从复制
    • 哨兵机制
  • 高可拓展主线:
    • 数据分片
    • 负载均衡

存哪些数据

对于键值数据库来说,基本结构就是Key-Values。但是为了支持更多业务场景,Redis提供了比较多的数据结构类型,具体就是String、List、Hash、Set、ZSet、GEO、HyperLogLog、BitMap、bitfield、Stream。
为什么要支持多样的数据结构呢
不同的数据结构,在空间和性能效率上是不同的,可以满足的业务场景也是不同,所以说需要根据具体的业务来结合使用相应的数据结构,充分发挥出对应数据结构的优点。

数据操作

上面列举了Redis的数据模型,但是对于数据的操作,无外乎就是以下三类。

  • 添加/更新类
  • 删除数据
  • 获取数据

虽然Redis的客户端提供了基础的对数据的操作,但是比如对于一些判断数据是否存在exits、ttl等也需要提供。而数据存储的位置一般内存优先于磁盘,针对于可以容忍数据丢失的场景的业务来说。但是存储在磁盘中,可以持久化存储,但是访问速度就比较慢了,所以需要平衡二者。

一个键值数据库的基本架构就是这样

  • 访问框架
  • 操作模块
  • 索引模块
  • 存储模块

访问模式

访问模式说白了就是如何连接到Redis服务端,一般来说一是可以通过函数连接库,二是通过网络框架,而Redis采用了后者。但是网络框架上需要解决的问题,比如数据的连接请求,数据数据,数据存储。如果是单线程,那么可能出现某一个流程的阻塞,导致整体性能下降。而如果是多线程,那么可能出现多个线程之间对于共享资源的竞争,而这个数据安全问题就需要考虑。而这就是IO模型设计。

定位键值对位置

当连接请求后,通过网络框架将请求到服务端后,这个时候如何进行查找相对应的key的位置,一般来说大多采用B+树、Hash等。而对于内存操作的Redis来说 使用Hash可以很好的和内存随机操作相匹配。

【Redis】聊一下Redis基础架构相关推荐

  1. 50 个 Redis 必备知识:基础知识,架构、调优和监控知识及难点解决

    本文包括:30 个 Redis 基础知识:10个 Redis 架构和运维必懂的知识:Redis 调优.监控知识和10个具体应用难点. 30 个 Redis 基础知识 1.Redis支持哪几种数据类型? ...

  2. Redis学习 - NoSQL简介、redis安装、redis基础知识、数据类型、持久化、订阅发布、主从复制、哨兵模式、缓存击穿和雪崩

    学习视频地址:https://www.bilibili.com/video/BV1S54y1R7SB 完结撒花,感谢狂神 文章目录 1. NoSQL 1.1 单机Mysql的演进 1.2 当今企业架构 ...

  3. 填坑利器?Redis如何弥补传统MySQL架构的不足

    对于技术人来说,Redis最成功的一点就是可以补充和扩展生态系统中的其他数据库.虽然使用新的后端数据库来替换旧的后端数据库,往往会被认为风险巨大.价格昂贵,但是原有的数据库可能很难进行线性扩展以满足用 ...

  4. redis 登录_Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeper

    Redis集群架构 [课程介绍] Redis是现在使用为广泛的NoSQL数据库技术,其自身不仅拥有着良好的操作性能,也被广泛的应用于各种集群架构的数据整合处理之中,而本课程将通过Redis的核心作用, ...

  5. 高并发用redis还是mysql_高并发架构系列:Redis缓存和MySQL数据一致性方案详解

    需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节.所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库. 这个业务场景,主要 ...

  6. redis专题:redis的主从、哨兵、集群架构的配置和部署详情、以及问题分析

    文章目录 1. 在linux下安装redis 2. redis主从架构 2.1 redis主从架构搭建步骤 2.2 redis主从架构数据同步原理 2.3 如果在主从传输过程中,从节点挂了怎么办? 2 ...

  7. Redis泛泛而谈(详细3W字)深入浅出Redis,十年阿里架构师分享:有了它还怕不懂Redis原理?

    本文适合于刚接触redis的,文章内容比较基础,大佬请绕道. 一.NoSQL入门和概述 Ⅰ-入门概述 1.为什么用NoSQL 1)单机MySQL的美好年代 在90年代,一个网站的访问量一般都不大,用单 ...

  8. Redis源码研究—基础知识

    1. Redis 是什么 Redis是一个开源的使用ANSI C语言编写的基于内存的key/value存储系统,与memcache类似,但它支持的value类型更多,包括:字符串(string).链表 ...

  9. Redis命令总结及其基础知识讲述

    Redis命令总结及其基础知识讲述 1.redis的不同之处 Redis拥有其他数据库不具备的数据结构,又拥有内存存储(这使得redis的速度非常快),远程操作(使得redis可以与多个客户端和服务器 ...

最新文章

  1. 基于C++的本征图像分解(Intrinsic Image Decomposition)
  2. weiss数据结构和算法书的使用说明
  3. EZ 2018 07 06 NOIP模拟赛
  4. Reactor中的Thread和Scheduler
  5. python办公自动化博客_自动化办公 Python 操控 Word
  6. [react] 使用React的memo和forwardRef包装的组件为什么提示children类型不对?
  7. linux 新建用户、用户组 以及为新用户分配权限
  8. html浏览器边框颜色,CSS设置字体和边框颜色时Chrome和其他主流浏览器差别的问题_html/css_WEB-ITnose...
  9. php mysql存图片路径_PHP 批量下传图片 怎么保存路径到mysql
  10. Spring实用系列-深入了解SpringMVC OncePerRequestFilter过滤器原理
  11. android多个网络请求如何依次执行,Android 并发和串行网络请求
  12. Linux环境下FFMPEG的安装与配置
  13. 右下角弹窗 html 怎么写,右下角弹窗广告.html
  14. 安全算法-对称加密与非对称加密
  15. Spring Cloud Alibaba微服务架构实战教程—15最详细的Gateway统一网关
  16. 网络安全- 专访丨互联网安全城市巡回赛冠军肖策:“大满贯”背后的秘密
  17. Windows热门的八款绘图软件总有一款是你想要
  18. php毕业论文致谢,科学网—我也晒一下毕业论文致谢,感谢诸多帮助过我的人 - 何浩宇的博文...
  19. Jackson注解:@JsonAlias使用详解
  20. 在VMware上安装win10

热门文章

  1. 5003 Storing and Retrieving Data
  2. centos7 安装keepalived
  3. Webbench实现与详解
  4. 索爱多功能广场舞蓝牙音箱怎么样啊?
  5. np.random.randint()
  6. “结对编程” 实验心得
  7. NW.js-01-简介和使用
  8. Part I 空气曲棍球 Chapter8(8.5 Updating Shaders)
  9. Python中LDA 计算 perplexity来确定主题数
  10. 102美金一周获利超6倍的交易心得