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

Redis初识第一期

简介

Redis刚开始开发时,是想作为一种消息队列使用的,但是后续发现它在分布式系统中大放异彩,所以就将它作为缓存使用了。

Redis是基于网络的,可以将内存中的数据共享给别的进程或者别的主机的进程使用。

Redis相较于MySQL,由于Redis是基于键值对存储数据的,这不同于MySQL使用表来存数据,所以Redis也是一种非关系型数据库。而且Redis由于是在内存上处理数据,这注定了它处理数据的能力远远快于MySQL。其次,由于“二八原则”的存在,即80%的业务场景很多时候只需要20%的数据就可以完成,所以Redis存的数据也足以应对大多数场景了。

Redis的一些特性

1.最主要的特性就是在内存中存储数据,并且使用键值对的方式进行存储数据。

2.Redis还支持使用脚本来进行批量处理操作。

3.Redis还可以使用C/C++或者Rust语言来进行扩展。

4.Redis同时也支持数据持久化,可以将内存的数据备份到磁盘上,当服务器因为重启而导致数据丢失时,Redis可以在服务器重启时将数据从磁盘上重新进行加载。

5.Redis也支持集群,可以“水平扩展”(类似于分库分表),将数据拆开存到不同主机的Redis数据库上。

6.Redis也支持“主从结构”,所谓主从结构,就是”主“主机负责写数据,并将修改的数据同步到各个“从”主机上,每个”从“主机只支持读操作。

总结:Redis为什么”快“?

1.最主要的原因是Redis在内存上存储和处理数据,而MySQL数据库是在硬盘上进行操作。

2.Redis的核心功能逻辑简单,操作”短快平“。

3.Redis采用IO多路复用(epoll),即一个线程管理多个Socket。

4.Redis处理数据是单线程处理的,对于请求是串行化处理的,这避免了因为多线程竞争而导致的开销。(但是Redis本身是多线程的,只是处理数据是单线程处理的)

5.底层实现是使用的C语言,这是相较于其语言而言,因为MySQL的底层实现也是C语言。

相关文章:

  • 1.线性表的顺序存储-顺序表
  • VAS5081电动工具专用3-8节串联电池监控芯片奇力科技
  • Javascript 单例模式
  • 【QT】 QGraphicsItem 获取点坐标的几种方法
  • vue3项目移动端实现进度条可手动滑动控制进度和点击控制进度
  • 我的世界进阶模组开发教程——开发机械动力附属模组(2)
  • 使用Python和PyTorch框架,基于RetinaNet模型进行目标检测,包含数据准备、模型训练、评估指标计算和可视化
  • linux 安装 opencv源码4.5.4记录
  • DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_学习计划日历示例(CalendarView01_20)
  • Python图像处理基础(六)
  • (十三)计算机视觉中的深度学习:特征表示、模型架构与视觉认知原理
  • 第29节 Node.js Query Strings
  • ETLCloud中数据脱敏规则的使用技巧
  • Linux中source和bash的区别
  • 深度学习环境搭建(pycharm+yolov5)
  • STM32外设学习之串口
  • asio之socket_ops
  • 【线程与线程池】线程数设置(四)
  • 在 Flask 或 Tornado 中返回渲染后的页面内容
  • io_uring的异步IO机制
  • 谢家华做网站/建站平台如何隐藏技术支持
  • 制作公众号的软件/搜索引擎优化规则
  • 响应式模板网站建设哪家好/关键词词库
  • 网站建设的过程/绍兴seo计费管理
  • 视频制作价格明细/优化大师手机版
  • 做deal网站/网站推广公司推荐