redis 基础篇(redis 理解)
目录
redis 特性介绍
redis 的一些特性(优点)
1. 在内存中存储数据
2. 可编程的
3. 可扩展
4. 持久化
5. 支持集群
6. 高可用
redis 的应用场景
数据库
作缓存
会话存储
作消息队列
redis 不适合做的事情
redis 介绍
redis 客户端形态
命令行
图形化界面
基于 redis 的 api 自行开发客户端
redis 特点
redis 特性介绍
redis 实际上是一个 内存中存储数据的中间件。
用于作为数据库,用于作为数据缓存。
适应于分布式操作系统。
redis 的一些特性(优点)
1. 在内存中存储数据
MySql 主要是通过表来存储数据,而 redis 主要通过键值对来存储数据,MySql 是关系型数据库,而 redis 是非关系型数据库。
redis 的 key 都是 string, value 则是一些数据结构。
value 的类型:
-
string
-
hashes
-
lists
-
sets
-
sorted
-
sets
-
streams
-
...
上述的这些数据结构都可以用键值对类组织。
2. 可编程的
针对 redis 的操作,可以直接通过简单的交互式命令进行操作,也可以通过一些脚本的方式,批量执行的一些操作。
3. 可扩展
可以通过一些语言编写 redis 的扩展(本质就是一个动态链接库)
支持的语言:
-
C
-
C++
-
Rust
4. 持久化
redis 是把数据放在内存上的,但是内存上的数据是易失的,进程退出/系统重启就丢失了。
持久化的原理:
redis 会把数据也存储到硬盘上一份,但是主要是以内存为主,影片上的数据就相当于备份,如果重启就会将数据恢复到内存。
5. 支持集群
类似于分库分表,一个 redis 能存储的数据是有限的,所以就可以映入多个主机,部署多个 redis 节点,每个 redis 存储数据的一部分。
6. 高可用
高可用(备份),redis 支持“主存结构”,从节点就相当于主节点的备份。
对于 redis 的特性其实还有一个——快。
-
redis 的数据在内存,就比访问硬盘的数据库就快。
-
redis 的核心功能都比较简单, 核心功能就是简单操作内存中的数据结构。
-
从网络角度上,redis 使用了 IO 多路复用的方式(epoll)
-
redis 使用的是单线程模型(虽然更高版本的 redis 引入了多线程),这样的单线程模型,介绍了不必要的线程竞争开销。
redis 的应用场景
数据库
把 redis 当作数据库。
大多数情况下,我们数据库优先考虑的是大,但是还是有一些场景,考虑的是“快”。
作缓存
使用 MySql 存数据,大,慢,但是我们可以把热点数据拿出来放在 redis 中。
上面的两个 redis 的应用场景下: 1.存全量数据,这里的数据是不能随便丢的。 2.作缓存 redis 里面的数据是可以丢失部分的。
会话存储
redis 可以作会话存储。
为了是实现用户身份信息的保存,我们还是需要 session 来配合,session 存储在服务器里面, cookie 只是一个用户身份的标识。
所以为了方便,就可以把会话存储到 redis 里面,每一次用户就可以快速的进行身份识别。
这样做即使应用服务器重启了,用户的身份信息不会丢失。
作消息队列
这里的消息队列是一个服务器。
但是 redis 作为消息队列并不是很完美。
RabbitMQ, Kafka, RocketMQ.....作为消息队列是很好的。
redis 不适合做的事情
redis 不适合存储大规模数据~
redis 是一个使用内存存储数据的中间件。
一般被作为 内存数据库/缓存/消息队列来使用~
redis 介绍
-
redis 的客户端和服务器是用网络通信的
-
redis 的客户端和服务器可以在同一台主机上,如果在同一台主机上,那么就是使用本地环回。
-
redis 服务端不是只为了一个客户端提供服务。
-
redis 服务器(本体)负责提供存储和管理数据。
redis 客户端形态
命令行
redis-cli -h 127.0.0.1 -p 6379
上面就是 redis 客户端的登录方式
-
-h:表示登录的主机 ip
-
-p:表示端口号 port
图形化界面
(桌面程序,web 程序)
这个一般不常用。
基于 redis 的 api 自行开发客户端
就是使用编写代码来操作 redis,这个是最常用的。
redis 特点
redis 是比较快的,但是这里的快是和 mysql 比较的。
比如现在有一个单机系统,然后要存储一些数据, redis 是通过键值对来存储的,如果现在使用 map 和 redis 来比较,那么显然是redis 是比 map 直接操作内存慢的,redis 还是要通过网络,才能操作内存。
所及 redis 还是适应于分布式。
上述场景是否要引入 redis,还是要结合实际场景来确认。
引入 redis 的缺点:
-
慢!
优点:
-
即使应用服务器重启也不会影响存入的数据。
未来要扩展成分布式也是使用 redis 是更佳的。
相关文章:
redis 基础篇(redis 理解)
目录 redis 特性介绍 redis 的一些特性(优点) 1. 在内存中存储数据 2. 可编程的 3. 可扩展 4. 持久化 5. 支持集群 6. 高可用 redis 的应用场景 数据库 作缓存 会话存储 作消息队列 redis 不适合做的事情 redis 介绍 redis 客户端形态 命…...
C++系列-函数重载
C系列-函数重载 函数重载函数重载的条件函数重载注意事项引用作为重载函数重载遇到默认参数 函数重载 函数名可以相同, 提高复用性 函数重载的条件 同一个作用域下函数名相同函数参数不同 – 参数个数不同 – 参数顺序不同 – 参数类型不同不可以使用返回值作为重…...
Linux scp命令
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。 scp [可选参数] file_source file_target 参数说明: -1: 强制scp命令使用协议ss…...

vue 简单实验 v-bind 变量与html属性绑定
1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"bind-attribute"><span v-bind:title"message">鼠标悬停几秒钟查看此处动态绑定的提示信息!</sp…...

114.(cesium篇)cesium去掉时间轴并用按钮控制运动
地图之家总目录(订阅之前必须详细了解该博客) 完整代码工程包下载,运行如有问题,可“私信”博主。效果如下所示: cesium去掉时间轴并用按钮控制运动 下面献上完整代码,代码重要位置会做相应解释 <html lang...

2023年清洁能源与智能电网国际会议(CCESG 2023)
会议简介 Brief Introduction 2023年清洁能源与智能电网国际会议(CCESG 2023) 会议时间:2023年 召开地点:中国南宁 大会官网:CCESG 2023-2023 International Joint Conference on Clean Energy and Smart Grid 由IASED主办, CoreS…...

RISC-V中国峰会 | 256核服务器高调亮相,谁与争锋?
8月23日,第三届RISC-V中国峰会(RISC-V Summit China 2023)在北京香格里拉饭店正式开幕,来自世界各地的行业精英汇聚一堂,为RISC-V生态系统建言献策,凝心聚力! 中国工程院院士倪光南、RISC-V国际…...

树套树小结
树状数组套权值线段树,实现过程类似主席树,采用动态开点实现 https://www.luogu.com.cn/problem/P3380 树状数组部分 线段树部分...
android 解决sdk代码冲突
1. 在引用sdk的外面添加排除sdk implementation ("androidx.core:core-ktx:1.9.0"){exclude (group:androidx.appcompat, module:appcompat)} 2. 全局指定对应的sdk版本 configurations.all {resolutionStrategy.eachDependency { DependencyResolveDetails detail…...
C++逆天合集
1.基础知识 1. 创建 编译 运行 touch a.cpp gedit a.cpp g -o a.out a.cpp ./a.out 2. a 等价于a a 1 3. ::运算符 4. 类型转换 赋给无符号类型超出其表达范围时,对总数取模得余数 赋给带符号类型超出其表达范围时,结…...

stm32之15.超声波与灯光功能一起实现(进阶)
主函数代码修改 --------------------- 源码 int main(void) {uint32_t t0;uint32_t distance;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);led_init();key_init();/* 初始化串口1波特率为115200bps,若发送/接收数据有乱码,请检查PLL */usart1_ini…...

美创科技荣获“2023年网络安全优秀创新成果大赛—杭州分站赛”两项优胜奖
近日,由浙江省互联网信息办公室指导、中国网络安全产业联盟(CCIA)主办,浙江省网络空间安全协会承办的“2023年网络安全优秀创新成果大赛-杭州分站赛”正式公布评选结果。 经专家评审,美创科技报名参赛的解决方案—“医…...
使用gdb+gdbserver远程调试aarch64平台程序
嵌入式开发板子(aarch64)程序编译(在ubuntu远程调试) 1.支持coredump, 并且设置coredump路径等 //生成文件路径与格式 echo /data/coredump/%e-%t-%p-%c.core > /proc/sys/kernel/core_pattern // 设置开启coredump 并设置显示文件大小 void set_coreDumpAvalib(const rl…...

【CesiumJS入门】(9)获取地表两点的距离及中心点——EllipsoidGeodesic
前言 一般情况下,我们可以直接通过Cesium.Cartesian3.distance(left, right)来获取两点的距离,但获取到的是两点的直线距离: const start new Cesium.Cartesian3.fromDegrees(113,23); const end new Cesium.Cartesian3.fromDegrees(113,…...

OLED透明屏介绍:领先科技的革命性创新
OLED透明屏作为一项领先的科技创新,在产品设计和用户体验方面展现出了巨大的潜力。 在这篇文章中,尼伽将介绍OLED透明屏的定义、特点、应用领域以及未来发展趋势,以帮助您全面了解OLED透明屏。 一、OLED透明屏的定义与原理 1.1 定义&#x…...
ESXI补丁更新
一、准备工作 VMware 产品的补丁可从https://customerconnect.vmware.com/patch下载 使用 vSphere Web Client 将补丁上载至 ESXi 主机中的数据存储。(注意:VMware 建议在数据存储中创建一个新目录并将补丁文件上载至此目录。) 迁移主机上正…...

【每日易题】数组下标的逆天用法——你见过把数组存储的值当作数组下标来解题的吗?
君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,在最近是刷题中,遇到了一种非常新奇的数组下标的用法,今天想来给大家分享一下这种神奇的思路和方法,希望能在你遇到类似问题时能通…...

mysql基本操作
常用的数据类型 int 整型用于定义整数类型的数据float 单精度浮点4字节32位 准确表示到小数点后六位 double 双精度浮点8字节64位双精度浮点8字节64位char 固定长度的字符类型用于定义字符类型数据varchar可变长度的字符类型 text文本image图片de…...

vue组件的使用
一、首先要穿件组件构造器对象,或者导入组件 1..在本部分注册组件其中组件为子组件 2.在本部分注册组件 二、而后注册组件 1.在本部分注册组件其中组件为子组件 2.在本部分注册组件 三、 接着,使用组件。 1.在本部分注册组件其中组件为子组件 其中v-i…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
土建施工员考试:建筑施工技术重点知识有哪些?
《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...

RabbitMQ 各类交换机
为什么要用交换机? 交换机用来路由消息。如果直发队列,这个消息就被处理消失了,那别的队列也需要这个消息怎么办?那就要用到交换机 交换机类型 1,fanout:广播 特点 广播所有消息:将消息…...

【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项
一、条形码识别改名使用教程 打开软件并选择处理模式:打开软件后,根据要处理的文件类型,选择 “图片识别模式” 或 “PDF 识别模式”。如果是处理包含条形码的 PDF 文件,就选择 “PDF 识别模式”;若是处理图片文件&…...

【Qt】控件 QWidget
控件 QWidget 一. 控件概述二. QWidget 的核心属性可用状态:enabled几何:geometrywindows frame 窗口框架的影响 窗口标题:windowTitle窗口图标:windowIconqrc 机制 窗口不透明度:windowOpacity光标:cursor…...