Redis-笔记(视频摘抄:哔哩哔哩博主(感谢!)-遇见狂神)

Redis(缓存数据库,有效控制查询)是非关系型数据库

缓存穿透、缓存击穿,缓存雪崩

Nosql概述

为什么使用NoSQL

大数据时代,那么什么是大数据,大数据就是一般的数据库没有办法进行分析处理,其中大数据处理产品就有Hadoop【2006】,【springBoot、springcould分布式开发】

1.单机MySQL的时代

App -> DAL -> MySQL

最早的时候数据模型是App又叫Web -> DAL数据库访问层 -> MySQL

最早的时候是一种数据库对应的一套语言,后来有了JDBC,使用JDBC可以做到,一种语言可以对应多种数据库,再到后台出现了现在的MyBatise,实现的方式越来越简单

为什么会出现缓存(用户太大,信息太多)

1. 数据库太大,一个机器放不下

2. 数据的索引太大,比如MySQL单表超过300万数据,就必须建立索引,不建立索引就会查询很慢,就必须创建索引

3. 访问量(读写)太大,一个服务器承受不了

2.Memcached(缓存) + MySQL+ 垂直拆分

读写分离

网页百分之八十都是在对,每次查询都去去查询数据库,会很慢,并且相同的查询会被重复调用会导致效率低,所以使用缓存来提高服务器和数据库的效率,所以缓存主要是解决读的问题

发展过程:优化数据结构和索引 -> 文件缓存(数据流的读写IO)-> Memcached

3.分库分表 + 水平拆分 + MySQL集群

技术和业务在发展,对人的要求就高,技术越来越复杂,

本质,数据库的读写

一开始一条线读写单机,后台加缓存,读的问题解决。再往后读的问题解决了,那么写的问题也要解决,

MyISM:锁表,影响效率,在高并发下就会出现很大问题

升级InnoDB:行锁,提高效率

慢慢的使用分库分表,解决写的压力

4.近年来(2010-2020)

因为数据量大,变化快导致mysql关系型数据库就不够用了,所以又出现了其他的的数据库,比如把数据放到缓存里,经过一定固定的时间再把数据放到持久层数据库中持久化,保证数据的安全。mysql有时候也会存储比较大的文件,比如图片,导致数据表很大,数据表大那么再去做查询的时候效率就会低,所以就在想可不可将一些公共的数据拿出去单独的管理,用来专门处理这些数据,那么mysql的压力就会变小。要处理这些数据,用关系型数据库就已经处理不了了,比如大数据的IO压力下,表的结构几乎是不能改的,因为数据再存储之前数据的列都是已经设计好的,那么在数据量很大的基础上,要去动态对列进行增加或者减少,这几乎是不可能的或者是费劲的。这里有一个名词叫“灰度发布”又叫“金丝雀发布”意思是在发布或者更新项目的时候是平滑的。

5.目前一个基本的互联网项目

用户去访问企业某些信息的时候,用户先是访问企业的防火墙或者一些路由网关,访问防火墙之前要做一个事情叫“负载均衡”(主机和备机)通过负载均衡去搭上各个服务器,,每个服务器都有对应的多个myslq服务器,除了mysql花卉进阿里一些缓存服务器、移动信息服务器、hadoop集群、实时通信服务器、流媒体服务器、图片服务器、文件服务器、群发服务器等等...

什么是NoSQL

NoSQL = Not Only SQL 

NoSQL泛指非关系型数据库,传统的关系型数据库(关系型数据库是由行和列组成的)对超大规模的高并发的社区处理不了,就会暴露出来很多难以克服的问题,所以产生了非关系型数据库,NoSQL在当今数据环境下发展的十分迅速,Redis是发展最快的,而且四我们当先必须掌握的技术!

很多的数据类型,比如用户信息,社交网络,地理位置。这些数据类型的存储不需要一个固定的格式(行列,关系)!是动态发展的,不许哟啊多余的操作就可以横向扩展的。类似于java里的Map<String,Object>,这是最典型的NoSQL,以(key,value)键值对来控制使用(注:键值对控制只是NoSQL的一种NoSQ总共有四大分类,这只是其中的一种,典型代表是Redis)

NoSQL的特点

1.方便扩展(数据之前没有关系,解耦)

2.大数据量高性能(Redis一秒可以写8万字,读取11万字,NoSQL的缓存记录级是一种细粒度的缓存)

3.数据类型是多样型的(不需要事先设计数据库,如果是Redis可以用过get、set随取随用的)

4.传统的RDBMS和NoSQL区别

传统的RDBMS
- 结构化组织
- SQL
- 数据和关系都存在单独的表中(row col)
- 操作操作数据的操作语言,数据定义语言
- 严格的一致性
- 基础的事务操作
.....
NoSQL
- 不仅仅是数据
- 没有固定的查询语言,有很多的语法,去学语法就可以了
- 很多的存储方式,比如:键值对存储、列存储、文档存储、图形数据库(社交关系)...
- 最终一致性
- CAP定理和BASE(异地多活,保证整个服务器不荡机,一个地方崩了其他的地方还可以正常的运行)
- 保证“三高”问题,高性能、高可用、高可扩展性
- ....

了解:3V+3高

大数据时间的3V:主要是描述问题的

1.海量Volume

2.多样Variety

3.实时Velocity

大数据时间的3高:主要是对程序的要求

1.高并发

2.高可扩

3.高性能

真正在公司实践中是MySQL + NoSQL一起使用的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/34333.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法训练(leetcode)第十六天 | 530. 二叉搜索树的最小绝对差、501. 二叉搜索树中的众数、236. 二叉树的最近公共祖先

刷题记录 530. 二叉搜索树的最小绝对差递归非递归 501. 二叉搜索树中的众数*236. 二叉树的最近公共祖先 530. 二叉搜索树的最小绝对差 leetcode题目地址 如果是一颗普通树&#xff0c;则使用暴力求解法&#xff1a;遍历树并保存树种每个节点的值&#xff0c;排序后找差值最小…

【Unity】数据持久化 PlayerPrefs

1、PlayerPrefs是什么 是unity提供的可以用于存储读取玩家数据的公共类 2、存储相关 2.1 PlayerPrefs的数据存储类似于键值对存储一个键对应一个值 提供了存储3种数据的方法int float string 键: string类型 值: int float string对应3种API PlayerPrefs.SetInt("myAge…

Web 应用开源项目大全

Web 应用开源项目大全结合巴比达内网穿透实现WEB公开访问。 下面是一个Web应用的开源列表。没什么可说的&#xff0c;太疯狂了。尤其是Web 2.0那一堆。我不知道你怎么想&#xff0c;有些开源项目的源码写得挺不好的&#xff0c;尤其是性能方面。或许你会以为改一改他们就可以成…

java构造方法的重载

在java中&#xff0c;与普通方法一样&#xff0c;构造方法也可以重载&#xff0c;在一个类中可以定义多个构造方法&#xff0c;但是要求每个构造方法的参数类型或参数不同。在创建对象时&#xff0c;可以通过调用不同的构造方法为不同属性赋值。 示例代码如下 class Student5…

全球网络战市场规模未来十年将超过万亿元

报告称&#xff0c;网络战市场涉及组件、最终用户和地区&#xff0c;其中组件分为硬件、软件和服务&#xff0c;最终用户分为政府、企业和私人、航空航天和国防、BFSI&#xff08;银行、金融服务和保险&#xff09;、医疗保健等&#xff0c;地区涉及北美、欧洲、亚太地区和拉美…

python turtle 画帕恰狗

先上个图给大家看看 代码 ##作者V w1933423 import turtle turtle.bgcolor("#ece8dc") turtle.setup(600,900) p turtle.Pen() p.pensize(14) p.speed(5) p.color("black")p.penup() p.goto(-54,-44) p.pendown() p.goto(-37,-39) p.goto(-27,-24) p.go…

Unity如何保存玩家的数据(Unity的二进制序列化)

文章目录 什么是二进制序列化读写文件构造函数 自定义二进制序列化 什么是二进制序列化 Unity中的二进制序列化是一种将游戏对象或数据结构转换为二进制格式的过程&#xff0c;以便于存储或网络传输。这使数据能够以高效的方式保存&#xff0c;同时在需要时可以被正确地恢复&a…

太全了吧?CISP全类别详细介绍,看完不迷惑

今天聊聊CISP&#xff0c;注册信息安全专业人员证。 很多人以为说CISP就是个证书&#xff0c;没这么简单&#xff0c;这里面区别可大了。 CISP根据工作领域和实际岗位需要&#xff0c;分为综合型、攻防领域、IT审计、软件开发、数据治理、电子取证和云安全领域等17项证书。 这么…

C++系统相关操作6 - 获取二进制程序的位数(32位或64位)

1. 关键词2. sysutil.h3. sysutil.cpp4. 测试代码5. 运行结果6. 源码地址 1. 关键词 关键词&#xff1a; C 程序 32位 64位 跨平台 实现原理&#xff1a; 根据指针地址的位数来判断程序是32位还是64位。 2. sysutil.h #pragma once#include <cstdint> #include &l…

在容器中共享本地文件

在容器中共享本地文件 目录 卷与绑定挂载的对比在主机和容器之间共享文件Docker 访问主机文件的文件权限试一试 运行一个容器使用绑定挂载在 Docker Dashboard 中访问文件停止容器 额外资源下一步 每个容器都有一切需要运行的资源&#xff0c;而不依赖于主机机器上预先安装的…

怎么样才能踏入机器视觉这个行业?

机器视觉从业的定位层次&#xff1a; 00001. 底层算法开发 00002. 应用软件开发 00003. 视觉系统集成 00004. 视觉系统使用刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「机器视觉的资料从专业入门到高级教程」&#xff0c; 00005. 点个关注在评论区回…

[FreeRTOS 功能应用] 信号量 功能应用

文章目录 一、基础知识点二、代码讲解三、结果演示四、代码下载 一、基础知识点 [FreeRTOS 基础知识] 信号量 概念 [FreeRTOS 内部实现] 信号量 [FreeRTOS 内部实现] 创建任务 xTaskCreate函数解析 本实验是基于STM32F103开发移植FreeRTOS实时操作系统&#xff0c;信号量实战…

python-pytorc+bert句子分类0.1.000

这里写目录标题 引入包加载预训练模型加载数据文件定义数据实例化数据集使用loader加载数据设定最大句子长度定义加padding的函数定义加collate_fn函数使用DataLoader加载数据 定义模型测试预训练模型输出测试预训练模型输出定义自己的模型 参考 引入包 import torch from tor…

this.$prompt 提示框增加文本域并修改文本域高度

2024.06.24今天我学习了如何对提示框增加文本域的方法&#xff0c;效果如下&#xff1a; 代码如下&#xff1a; <script>methods:{reject_event(){this.$prompt(驳回内容, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,inputType: textarea,inputPlaceholder…

计算机网络(数据链路层)

数据链路层概述 数据链路层位于计算机网络的低层&#xff0c;且在物理层之上&#xff0c;数据链路层使用的信道主要有以下两种类型。 &#xff08;1&#xff09;点对点通信。在信道上使用一对一的点对点通信。 &#xff08;2&#xff09;广播信道。这种信道使用一对多的广播通…

【linux】详解——库

目录 概述 库 库函数 静态库 动态库 制作动静态库 使用动静态库 如何让系统默认找到第三方库 lib和lib64的区别 /和/usr/和/usr/local下lib和lib64的区别 环境变量 配置相关文件 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 简介&#xff1a;C站最萌博主 相关…

DDK电通拧紧MFC-S060控制器过流维修

一、DDK伺服拧紧轴控制器过流故障的成因 1. 电源电压过低&#xff1a;当电源电压过低时&#xff0c;控制器可能会出现过流现象。 2. 负载过大&#xff1a;当负载过大时&#xff0c;DDK电通拧紧机控制器MFC-S060的电流也会随之增大&#xff0c;可能导致过流故障。 3. 控制器内部…

自动调整QTableView列宽以适应窗口大小

问题描述 十年前&#xff0c;有人提出了一个问题&#xff1a;当我使用自定义模型来展示 QTableView&#xff0c;并固定了三列时&#xff0c;初始窗口显示正常&#xff0c;但当我调整窗口大小时&#xff0c;QTableView 会随之调整大小&#xff0c;而列宽却保持不变。我想让列宽…

远程连接mysql数据库的详细配置

1. 确认 MySQL 服务器配置 首先&#xff0c;确认 MySQL 服务器的配置允许远程连接。您需要编辑 MySQL 的配置文件&#xff0c;并确保以下设置正确&#xff1a; bind-address&#xff1a;这个参数控制 MySQL 监听的 IP 地址。如果要允许任何 IP 地址连接&#xff0c;请将其设置…

手写 Promise 的实现

手写 Promise 的实现 从实现原理的角度分析 Promise 是什么 从语法上说&#xff0c;Promise 是一个对象&#xff0c;从它可以获取异步操作的消息。ES6 原生提供了Promise对象。 Promise内部有三种状态&#xff1a;pending&#xff08;进行中&#xff09;、fulfilled&#xf…