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

对 SQL 说“不”~

开发人员注意!

您在当前的应用程序架构中是否面临这些问题?

  • 对 SQL 数据库的高吞吐量。
  • SQL 数据库中的瓶颈。

内存数据存储将是解决问题的方案。Redis 是市场上最受欢迎的内存数据存储和缓存选项。Redis 拥有广泛的生态系统,因为主要科技巨头都采用它,它是由 Salvatore Sanfilippo 开发的开源项目。Redis 代表远程词典服务器。

通俗地说,Redis 是教科书中的索引页。
这里存储键值对。其中值可以位于不同的数据结构中,如排序集、列表、堆栈、字符串和整数。
这种内存数据存储的局限性在于,它的成本会大幅增加。解决方案是根据应用程序需求使用内存层次结构。

  • 仅供参考:即使您的设备也使用内存层次结构来提供与其值相对应的最佳存储组织。

内存层次结构

内存层次结构是根据响应时间组织计算机内存组件的设计。它包括使用多个内存组件,如缓存、RAM、ROM 和 SSD/HDD。

为什么要使用内存数据存储?

问题 - 为什么我们应该使用像 Redis 这样的东西,我们可以简单地将值存储在Map与其对应的键的数据结构中,并用它来处理并发请求?

扩展

是的,它可以与 Monolith 架构一起使用。但是,需要通过添加更多资源(如 RAM 和 CPU)来垂直扩展系统。但通过使用 Redis,我们可以通过向集群添加更多 Redis 服务器来水平扩展基础架构。

符合 ACID 标准

Redis 支持部分 ACID 合规性,因为它是单线程的,这保证了一致性和隔离性。系统内存的使用将大大增加 CPU 使用率和 RAM 消耗,从而减慢应用程序进程。此外,redis 支持密钥的过期,包括记录的时间或使用。因此,当不再使用记录时,它会自动删除记录。

社区支持

Redis 是一个开源项目,提供 Pub-Sub、数据流、向量搜索等服务。其中每项服务都由市场上最优化的算法和数据结构支持。

并发请求

Redis 使用单线程事件驱动架构,当 100 个用户读取数据库时,Redis 的响应时间比 SQL 数据库快 1000 倍。此外,通过使用事件驱动架构,它可以轻松处理高吞吐量。

Redis 可以替代 SQL 数据库吗?

可以将 Redis 视为数据库基础设施的插件,这可以使您的应用程序运行速度极快。

相关文章:

  • 随便用css换个渐变的太阳
  • OrangePi AIpro 变身 Android 打包机
  • github使用相关问题
  • Oracle数据库面试题-3
  • 宇泰485中继器光电隔离防雷 工业级RS485信号放大器 UT-2209正品
  • 学习DHCP动态主机配置协议
  • 赶紧收藏!2024 年最常见 20道 Kafka面试题(五)
  • Pytorch实用教程:pytorch中 argmax(dim)用法详解
  • nginx优化和重写功能rewrite
  • vscode怎么拷贝插件到另一台电脑
  • 如何用结构化写好GPT的Prompt提示词
  • MySQL之创建高性能的索引(十一)
  • QT之动态加载树节点(QTreeWidget)
  • 《数字图像处理-OpenCV/Python》第15章:图像分割
  • IDEA 2023.3.6 下载、安装、激活与使用
  • 「译」Node.js Streams 基础
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • canvas 高仿 Apple Watch 表盘
  • ES6简单总结(搭配简单的讲解和小案例)
  • in typeof instanceof ===这些运算符有什么作用
  • Java Agent 学习笔记
  • Java反射-动态类加载和重新加载
  • JS函数式编程 数组部分风格 ES6版
  • Vue 重置组件到初始状态
  • 大主子表关联的性能优化方法
  • 订阅Forge Viewer所有的事件
  • 给github项目添加CI badge
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 后端_ThinkPHP5
  • 计算机在识别图像时“看到”了什么?
  • 简单基于spring的redis配置(单机和集群模式)
  • 警报:线上事故之CountDownLatch的威力
  • 如何优雅地使用 Sublime Text
  • 突破自己的技术思维
  • 在weex里面使用chart图表
  • ###C语言程序设计-----C语言学习(6)#
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #NOIP 2014# day.2 T2 寻找道路
  • #pragma multi_compile #pragma shader_feature
  • (SERIES10)DM逻辑备份还原
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (不用互三)AI绘画工具应该如何选择
  • (二) 初入MySQL 【数据库管理】
  • (二)fiber的基本认识
  • (九)信息融合方式简介
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (十二)Flink Table API
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net