当前位置: 首页 > news >正文

Redis1:高并发与微服务中的键值存储利器

redis中存储的数据格式为键值对(Key,Value)

高并发的项目和微服务的项目会频繁的用到redis

NoSQL型数据库

1.初始Redis

1.1认识NoSQL

SQL:structure query language关系型数据库

  1. 结构化:有固定格式要求(表关系,约束关系等),不建议后续的随意修改

  2. 关联的:有关联(外键),表关系易于维护,较为方便

  3. SQL查询:查询语法固定,是一种通用语法

  4. ACID

  5. 存储方式:在磁盘存储

  6. 扩展性:垂直(本机)

适用:数据结构相对固定、相关业务对数据安全性一致性要求较高

NoSQL:非关系型数据库

  1. 非结构化:健值型、文档型(json)、图类型、列类型等,允许后续的结构修改

  2. 非关联的:一般通过json数据去维护关系,比较复杂需要程序员自己去维护

  3. 非SQL:不同的非关系库中的语法不相同,语法较为简单

  4. 无法全部满足ACID

  5. 存储方式:在内存中存储

  6. 扩展性:水平(分布式多机)

适用:数据结构不固定、相关业务对数据安全性一致性要求较低,对性能的要求较高

1.2认识Redis

redis 诞生于2009年,Remote Dictionary Server 远程词典服务器,是一个基于内存的健值型NoSQL数据库

特征:

  • 健值型,value支持多种不同数据结构(集合,字符串,map等),功能丰富

  • 单线程,每个命令具有原子性,线程安全

  • 低延迟,速度快(基于内存、IO多路复用、良好的编码C、底层实现了良好的数据结构)

‌技术本质

        IO多路复用(I/O Multiplexing)是一种同步IO模型,通过单个线程或进程同时监视多个文件描述符(如套接字),当其中任意一个描述符就绪(可读/可写)时,内核会通知应用程序进行相应操作。其核心思想是‌“事件驱动”‌和‌“资源复用”‌。

‌关键特征

单线程管理多连接‌:与传统的“一线程一连接”模式不同,它通过Selector(选择器)或epoll等机制实现线程复用。

同步非阻塞‌:属于同步IO范畴,但通过非阻塞方式轮询或事件通知实现高效处理。

解决的核心问题

‌高并发场景的资源消耗‌:传统阻塞IO(如BIO)需为每个连接创建独立线程,导致线程切换开销大、内存占用高,而IO多路复用通过单线程处理数千连接,显著降低系统开销。

  • 支持数据持久化

  • 支持主从集群、分片集群

  • 支持多语言客户端

1.3安装redis

见下篇笔记

http://www.lryc.cn/news/590567.html

相关文章:

  • mongodb操作巨鹿
  • DHTMLX Suite 9.2 重磅发布:支持历史记录、类Excel交互、剪贴板、拖放增强等多项升级
  • Qt小组件 - 6 异步运行函数
  • Redis深度解析:从缓存到分布式系统的核心引擎
  • Java高并发编程(2)
  • beautiful-react-hooks库——入门实践常用hook详解
  • React之旅-09 useMemo,优化计算性能的利器
  • React 源码7:Lane、React和schedule优先级转换
  • WPF 多窗口分文件实现方案
  • 【MAC】nacos 2.5.1容器docker安装
  • QT——事件系统详解
  • 多语言json文件内\n换行不生效问题
  • React -自定义hooks - 封装双向数据绑定
  • React 中 props 的最常用用法精选+useContext
  • H3CNE综合实验之机器人
  • Antd中使用Table集成 react-resizable实现可伸缩列
  • PowerJob集群机器数为0问题
  • 深度剖析 TDMQ RabbitMQ 版经典队列底层存储机制
  • vue页面不销毁的情况下再返回,总是执行created,而不触发 activated
  • QOpenGLWidget自定义控件— 2D点云显示(支持平移、放缩、绘制网格)
  • SpringBoot集成Minio存储文件,开发图片上传等接口
  • 【c++深入系列】:万字详解list(附模拟实现的list源码)
  • 【Fedora 42】Linux内核升级后,鼠标滚轮失灵,libinput的锅?
  • 开源 python 应用 开发(六)网络爬虫
  • ubuntu中拷贝docker容器中的文件到宿主机
  • IKE学习笔记
  • K8s 自定义调度器 Part1:通过 Scheduler Extender 实现自定义调度逻辑
  • AI产品经理面试宝典第28天:自动驾驶与智慧交通融合面试题与答法
  • Xshell 7.0.0111p.exe 下载安装教程 - 详细步骤指南(包含安装包)
  • Kotlin获取集合中的元素操作