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

Redis -- 背景知识

知识就是力量” --  弗朗西斯·培根


目录

特性

为啥Redis快?

应用场景

Redis不能做什么?


  Redis是在内存中存储数据的一个中间件,用作为数据库,也可以用作为缓存,在分布式中有很高的威望。

特性

  • In-memory data structures:在内存中存储数据
  • key-value model:使用键值对的存储方式,是一种非关系型数据库(相较于MySQL等数据库以表的形式
  • Programmability:针对redis的操作,可以直接通过简单的交互式命令进行操作,也可以使用脚本的方式,批量进行操作
  • Extensibliity:可拓展性,可以在redis原有的基础上再进行扩展,可以通过c,c++等语言编写Redis扩展
  • Presistence:数据持久化,将数据保存在内存中以便更快速的访问,但是内存中的数据是易失的,redis会将数据存储在硬盘上,内存为主硬盘为辅,redis会将数据备份在硬盘中方便在异常状况后恢复数据
  • Clustering:水平扩展,类似于分库分表。一个 Redis 能存储的数据是有限的 (内存空间有限) 引入多个主机,部署多个 Redis 节点每个 Redis 存储数据的一部分
  • High availability:高可用,Redis自身也是支持主从结构,从节点就相当于主节点的备份。

为啥Redis快?

  •  Redis数据存储在内存中,访问速度比硬盘快
  • Redis核心功能都是比较简单的逻辑
  • 从网络角度,Redis使用的io多路复用(使用一个线程管理多个socket
  • Redis是使用的单线程模型,减少了线程之间不必要的竞争开销

应用场景

  • 键值对数据库:实时性更高,速度要求更快的场景
  • 使用Redis存储热点数据
  • 会话存储
  • 实现网络版本的消息队列(生产者消费者模型

Redis不能做什么?

        实际上和任何一门技术一样,每个技术都有自己的应用场景和边界,也就是说 Redis 并不是万金油,有很多合适它解决的问题,但是也有很多不合适它解决的问题。我们可以站在数据规模和数据冷热的角度来进行分析。
        站在数据规模的角度看,数据可以分为大规模数据和小规模数据,我们知道 Redis 的数据是存放在内存中的,虽然现在内存已经足够便宜,但是如果数据量非常大,例如每天有几亿的用户行为数据,使用 Redis 来存储的话,基本上是个无底洞,经济成本相当高。
        站在数据冷热的角度,数据分为热数据和冷数据,热数据通常是指需要频繁操作的数据,反之为冷数据,例如对于视频网站来说,视频基本信息基本上在各个业务线都是经常要操作的数据,而用户的观看记录不一定是经常需要访问的数据,这里暂且不讨论两者数据规模的差异,单纯站在数据冷热的角度上看,视频信息属于热数据,用户观看记录属于冷数据。如果将这些冷数据放在 Redis 上,基本上是对于内存的一种浪费,但是对于一些热数据可以放在 Redis 中加速读写,也可以减轻后端存储的负载,可以说是事半功倍


看完了?咱继续下一章?🥳

Redis -- 开篇热身,常用的全局命令-CSDN博客文章浏览阅读600次,点赞16次,收藏11次。Redis重要文件 启动停止脚本 配置文件 持久化文件存储目录核心命令 set get全局命令 keys exists del expire ttl 过期策略是如何实现的 定时器 type小结https://blog.csdn.net/niceffking/article/details/135914478

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

相关文章:

  • 如何在Shopee平台上进行手机类目选品?
  • 班级管理神器,教师在线发布系统
  • 【Spring Boot 3】异步线程任务
  • JAVA斗地主逻辑-控制台版
  • Harmony的自定义组件和Page的数据同步
  • 【Vue3+Vite】路由机制router 快速学习 第四期
  • python脚本实现浏览器驱动chromedriver的版本自动升级
  • npm使用国内淘宝镜像
  • # Redis 分布式锁如何自动续期
  • 数据结构 归并排序详解
  • 服务器C盘突然满了,是什么问题
  • 【深度学习】ND4J-科学计算库
  • 2024-01-29 ubuntu 用脚本设置安装交叉编译工具链路径方法,设置PATH环境变量
  • 今年春节很多年轻人选择不买战袍,减少年货置办,「极简过年」,如何看待此现象?
  • C语言·贪吃蛇游戏(下)
  • Flask 入门2:路由
  • 【C++】 C++入门— 基于范围的 for 循环
  • C++——析构函数
  • Vue3学习记录(二)--- 组合式API之计算属性和侦听器
  • react-virtualized实现行元素不等高的虚拟列表滚动
  • Linux系统各目录作用
  • 嵌入式系统学习(一)
  • 重写Sylar基于协程的服务器(3、协程模块的设计)
  • Linux之系统安全与应用续章
  • 《HTML 简易速速上手小册》第7章:HTML 多媒体与嵌入内容(2024 最新版)
  • 【CSS】移动端适配
  • DFS剪枝算法经典题目-挑选
  • 考研经验总结——考试期间
  • vue3 源码解析(6)— lifecycle 生命周期的实现
  • three.js CSS2DRenderer、CSS2DObject渲染HTML标签