redis-学习笔记(概念, 相关名词, 特性, 优势: 快)

redis 概念

官网介绍如下
在这里插入图片描述

redis 的初心,是作为 "消息中间件" 来用, 但是因为业内有更专业的消息中间件 (RabbitMQ …), 因此使用不多, 但是如果只是简单的消息获取,转发,也可以用redis,而不必花费大力气添加其他消息中间件
作为数据库使用, 相对于 MySQL 来说, 存储空间有限是最大的劣势,但因为其快,所有更多作为缓存来使用

如何使得存储数据又大 (不是) 又快?
把 redis 和 MySQL (或 Oracle 之类的), 结合起来使用
redis 存储热点数据, MySQL 存储所有数据, 查询数据时从redis开始, 查不到再去MySQL

redis 是在分布式系统中的大杀器, 单机系统中, 直接使用变量存储数据, 会比使用 redis 快得多. (redis 是的,可以把自己的内存分配给别的进程, 甚至是别的主机使用)

几个相关概念

应用(Application) / 系统(System)
一个应用, 就是一个组 / 服务器程序

模块(Model) / 组件(Component)
一个应用, 里面有多个功能, 每一个功能, 可称为一个 模块 / 组件

分布式(Distributed)
引入多个主机 / 服务器, 协同配合完成一系列的工作 (物理上的主机)

集群(Cluster)
引入多个主机 / 服务器, 协同配合完成一系列的工作 (逻辑上的主机)

分布式和集群的区别
分布式: 多个系统协同完成一个特定任务的系统
集群: 在几个服务器上部署相同的应用程序来分担客户端的请求
简单理解:
分布式: 把一个大业务拆成几个小业务, 每个小业务均是独立的系统, 子业务之间相互协作
集群: 处理同一个业务, 但是由系统部署多个节点
分布式的子节点也可以由集群构成
( 参考自大佬博客(点击跳转))

主(Master) / 从(Slave)
构成分布式的一个比较奇特的结构, 多个服务器节点中, 一个是主, 其余是> 从. 从节点的数据, 要从主节点同步.

中间件(Middleware)
更复杂的东西了,xdm 自己搜 (其实简单理解就是字面意义, 我是老板, 下面有几十个员工, 分派任务很麻烦, 但是中间有个经理, 我就只把任务告诉经理就 ok, 可以减少的工作量, 可以只做主要工作即可)

可用性(Availability)
(一个系统的第一要务)
系统整体可用的时间 / 总的时间

响应时间(Response Time 即 RT)

吞吐(Throughput) vs 并发(Concurrent)

(响应时间和吞吐并发 可以用来衡量服务器的性能)

Redis 特性

在这里插入图片描述

在内存中存储
使用键值对方式来存储组织结构, “非关系型数据库”

在这里插入图片描述

可编程性
使用 Lua 语言 (撸啊)

在这里插入图片描述

可拓展性
Redis 提供了一组API, 以便于用户使用过程中对原有功能进行在拓展

在这里插入图片描述

持久化
Redis 虽然是基于内存, 但是会把数据在硬盘上备份 (内存为主, 硬盘为辅)
即 Redis 重启或退出前会将内存中的数据备份一份到硬盘, 每次启用也会从硬盘上加载数据

在这里插入图片描述

支持集群
上面写过,集群与分布式配合使用, 类似于 “分库分表”
一个 Redis 能存储的数据是有限的(内存空间有限)
因此可以引入多个主句,部署多个 Redis 节点, 每个 Redis 存储数据的一部分

在这里插入图片描述

高可用性 ⇒ 冗余 / 备份
Redis 自身支持 "主 / 从"结构, 从节点就相当于主节点的备份
即 主节点挂了, 从节点顶上, 减小 bug 对程序运行的影响

Redis 为什么快

  1. Redis 直接操作内存, 肯定比访问硬盘的数据库快
  2. Redis 核心功能都是简单的逻辑 (老板给员工分任务, 肯定比员工做任务, 要简单的多得多)
  3. Redis 使用了 IO 多路复用的方式 (epoll) (简单说就是使用一个线程, 管理多个 socket , 毕竟不是每一个 socket 都会时刻被用到, 那单独占一个线程, 会很浪费资源)
  4. Redis 使用单线程模型, 减少了不要用的线程之间的竞争开销 (宏观多线程并发进行, 即多个地方同时使用 Redis 但是消息到达 Redis, 会在一个队列中排队, Redis 会单个进行调用, 即微观上是单线程)
  5. Redis 是C语言开发的(存疑, MySQL也是C语言开发的,但是二者之间的运行速度可谓天差地别,只能说相对于 java, py 实现的 Redis 来说, C语言实现确实快一点)

(PS: 因为快,所以小 [不是], 所以不建议存储大量数据 )

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值