Redis笔记——(狂神说)待续
Nosql概述
为什么要用NoSql?
1、单机mysql的年代:90年代,网站访问量小,很多使用静态网页html写的,服务器没压力。
当时瓶颈是:1)数据量太大一个机器放不下。2)数据的索引(B+Tree),一个机器内存也放不下。3)访问量(读写混合),一个服务器承受不了~
2、Memcached(缓存)+ Mysql+ 垂直拆分 (读写分离)。
如用2台机器的mysql负责读操作,一台机器的mysql负责写操作并且同步给其他2机器的mysql,然后读操作mysql前面也可以加上一层缓存处理大量读请求。
网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦!所以说我们希望减轻数据的压力,我们可以使用缓存来保证效率!
发展过程︰优化数据结构和索引-->文件缓存(IO ) ---> Memcached (当时最热门的技术!)

3、分库分表 + 水平拆分(mysql集群)
如上面2台读mysql的机器和一台写mysql的机器可以组成一个集群1,然后另外2台读mysql的机器和一台写mysql的机器(其实也可叫读的mysql为slave,写的mysql为master)再组成集群2,...集群3,这样只在集群1中放1/n的数据,所有集群组合成一个完整的数据。用户来读写的时候通过算法再去相应的集群中找。

对于读请求,可通过memcache缓存来解决。
对于写请求:
早些年:MyISAM:表锁,十分影响效率,高并发下会出现严重的所问题
转战InnoDB:行锁
慢慢的就开始使用分库分表来解决写的压力。在那个年代MySql就推出了表分区,这个并没有多少公司使用。也推出了mysql的集群,很好的满足了当时那个年代的需求。
4、如今最近的年代
2010--2020十年之间,世界已经发生了翻天覆地的变化;(定位,也是一种数据,音乐,热榜!)
MySQL等关系型数据库就不够用了!数据量很多,变化很快~!
MySQL有的使用它来存储一些比较大的文件,博客,图片!数据库表很大,效率就低了!如果有一种数据库来专门处理这种数据,
MySQL压力就变得十分小(研究如何处理这些问题!)大数据的IO压力下,表几乎没法更大!

为什么要用NoSQL !
用户的个人信息,社交网络,地理位置。用户自己产生的数据,用户日志等等爆发式增长!这时候
我们就需要使用NoSQL数据库的,Nosql可以很好的处理以上的情况!
什么是NoSQL?
(关系型数据库:表格,行,列)
not noly sql ,
泛指非关系型数据库的。随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代!尤其是超大规模的高并发的社区!暴露出来很多难以克服的问题,NoSQL在当今大数据环境下发展的十分迅速,Redis是发展最快的,而且是我们当下必须要掌握的一个技术!
很多的数据类型用户的个人信息,社交网络,地理位置。这些数据类型的存储不需要一个固定的格式!不需要多余的操作就可以横向扩展的!Map<String,Object>使用键值对来控制!
传统RDBMS和NoSQL区别
传统的 RDBMS
-结构化组织- SQL
-数据和关系都存在单独的表中 row col-操作操作,数据定义语言
-严格的一致性
-基础的事务......
Nosql
-不仅仅是数据
-没有固定的查询语言
-键值对存储,列存储,文档存储,图形数据库(社交关系)-最终一致性,
- CAP定理和BASE(异地多活)-高性能,高可用,高可扩
- ....大数据时代的3V:主要是描述问题的
1.海量Volume
2.多样Variety
3.实时Velocity
大数据时代的3高:主要是对程序的要求
1.高并发
2.高可拓
3.高性能
真正在公司中的实践:
NoSQL + RDBMS一起使用才是最强的,阿里巴巴的架构演进!
技术没有高低之分,就看你如何去使用!
NoSQL的四大分类
NoSQL的四大分类
KV键值对∶
·新浪:Redis
·美团:Redis + Tair
·阿里、百度:Redis + memecache文档型数据库( bson格式和json一样)∶
.MongoDB(一般必须要掌握)
o MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档!
o MongoDB是一个介于关系型数据库和非关系型数据中中间的产品! MongoDB是非关系型数据库中功能最丰富,最像关系型数据库的!
. ConthDB列存储数据库
· HBase
·分布式文件系统图关系数据库
他不是存图形,放的是关系,比如︰朋友圈社交网络,广告推荐!
Neo4j ,lnfoGrid ;
Redis入门
概述
Redis是什么?
Redis ( Remote Dictionary Server ),即远程字典服务
是一个开源的使用ANSl C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的AP.
免费和开源!是当下最热门的NoSQL技术之一!也被人们称之为结构化数据库!
Redis 能干嘛?
1、内存存储、持久化,内存中是断电即失、所以说持久化很重要( rdb、aof )
2、效率高,可以用于高速缓存
3、发布订阅系统
4、地图信息分析
5、计时器、计数器(浏览量!)
6、.……
特性
1、多样的数据类型
2、持久化
3、集群
4、事务注意:Wdinow在 Github上下载(停更很久了! )
Redis推荐都是在Linux服务器上搭建的,我们是基于Linux学习!
官网
官网:https://redis.io
 中文网:http://redis.cn
Windows下安装Redis
详见hexo笔记springboot(21)。
Releases · tporadowski/redis · GitHub
可下载msi文件。然后运行安装,选择安装目录一路next即可。
然后安装目录根目录,即redis-server.exe所在的根目录上方敲cmd,使用下面命令开启:
服务端启动命令
redis-server.exe redis.windows.conf
客户端启动命令
redis-cli.exe
小bug,直接 redis-server.exe redis.windows.conf 起不来,需要先根目录上再开一个cmd,然后执行redis-cli.exe和shutdown和exit
D:\《D盘主文件夹》\桌面\Redis\Redis5>redis-cli.exe
127.0.0.1:6379> shutdown
not connected> exitD:\《D盘主文件夹》\桌面\Redis\Redis5>然后再在作为server的根目录上敲的cmd窗口中 redis-server.exe redis.windows.conf 就可成功启动了。
测试:
输入ping回车pong
使用:
set [key] [value]
get [key]
Linux下安装Redis
官网:https://redis.io
官网中下最新版的redis ,下载得到.tar.gz安装包
打开Vmware虚拟机,运行linux镜像,如centOs7,
嫌弃界面不美观的可以ip address查看ens33的inet为当前linux的ip。然后使用finalShelll链接ssh输入ip,端口不用输,输入linux的登录用户和密码保存和连接即可。
1将下载的安装包.tar.gz拖曳到finalshell的/home/kdy/目录下,即上传windows中的安装包到centos7中。
cd /home cd kdy ,ll有安装包,再把安装包移动到/opt目录下 mv redis-7.2.0.tar.gz /opt cd /opt ll有这个安装包
2解压缩:tar -zxvf redis-7.2.0.tar.gz 得到解压后的redis目录
3.进入解压后的文件,可看到redis配置文件 cd redis-7.2.0 ll 里面有个 redis.conf
4.进入解压后的文件后,运行yum install gcc-c++ 安装基本的环境 gcc -v查看版本
5.进入解压后的文件后,输入make回车 安装基本的环境 ,然后再make install
相关文章:
 
Redis笔记——(狂神说)待续
Nosql概述 为什么要用NoSql? 1、单机mysql的年代:90年代,网站访问量小,很多使用静态网页html写的,服务器没压力。 当时瓶颈是:1)数据量太大一个机器放不下。2)数据的索引(BTree),一个机器内存也…...
 
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v7.0版已发布
关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp,服务端基于Netty编写。 工程…...
 
BLFS学习系列 第26章. 显示管理器 —— 总述
显示管理器(Display Manager)是用于启动图形显示(当前为X服务器)并为窗口管理器或桌面环境提供登录功能的图形程序。 有许多显示管理器可用。一些较为知名的包括:GDM、KDM(已弃用)、LightDM、L…...
 
macOS上编译obs-studio
前言 最近基于obs的1个二开程序,需要移植到macOS平台上,由于遇到些问题,本文记录下如何在macOS上配置&编译&运行obs程序完整过程。 下载 首先下载cmake-gui工具,下载CMAKE,选择对应macOS平台的cmake版本&…...
Oracle数据库快速入门
前言: 我想现在很多人的入门数据库都是mysql,但是由于工作中会接触到Oracle数据库,如果你有MySQL的基础的话,这篇文章能让你很快掌握Oracle。 目录 1.体系结构 2.创建用户和表空间 2.1.创建表空间 2.2.创建用户 3.数据类型…...
 
Linux内核学习(十)—— 块 I/O 层(基于Linux 2.6内核)
目录 一、剖析一个块设备 二、缓冲区和缓冲区头 三、bio 结构体 四、请求队列 五、I/O 调度程序 系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的硬件设备称作块设备,这些固定大小的数据片就称作块。最…...
 
SpringMVC 写个 HelloWorld
文章目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式:warc>引入依赖 3、配置web.xmla>默认配置方式b>扩展配置方式 4、创建请求控制器5、创建springMVC…...
 
ARM--day7(cortex_M4核LED实验流程、异常源、异常处理模式、异常向量表、异常处理流程、软中断编程、cortex_A7核中断实验)
软中断代码:(keil软件) .text .global _start _start:1.构建异常向量表b resetb undef_interruptb software_interruptb prefetch_dataabortb data_abortb .b irqb fiq reset:2.系统一上电,程序运行在SVC模式1>>初始化SVC模…...
Java中LinkList的基本介绍和细节讨论。双向链表的代码和LinkList的源码。LinkList和ArrayList的比较与选择。
LinkedList 是 Java 中的一个双向链表实现的类,它实现了 List 接口,同时也实现了 Deque 接口,因此可以用作列表、队列或双端队列。下面是关于 LinkedList 的基本介绍和细节讨论: 基本介绍: LinkedList 是一个双向链表…...
 
Proteus软件安装包分享(附安装教程)
目录 一、软件简介 二、软件下载 一、软件简介 Proteus软件是一款电路设计和仿真的综合性软件,由Labcenter公司开发。它提供了一个交互式的图形界面,用户可以在其中构建电路、仿真结果并实时观察仿真结果。 1、Proteus的历史和演变 Proteus软件最初于…...
“图为科技——什么是边缘计算“
边缘计算是一种新兴的计算模式,它将计算资源和服务推向离终端设备更近的地方。以往,计算任务大多集中在云端进行,但随着物联网和移动互联网的快速发展,边缘计算应运而生。 边缘计算的核心思想是将计算、存储和网络功能部署在离终端…...
 
SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件。它就是Spring Cloud Config。 一、简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需…...
mysql 错误码
一、 #22001 Caused by: java.sql.BatchUpdateException: Data truncation: #22001检查一下数据库表字段,特别是VARCHAR的长度是否够。 Caused by: java.sql.BatchUpdateException: #HY000检查是不是违反了非空约束,NOT NULL字段有没有没传的 二、...
HTML的form表单标签详解~
通过HTML提交表单数据有web中是非常常用的操作,所以有必要详细、仔细学习了解HTML的form表单。 目录 01-关键词 novalidate 是什么意思?02- action"" 是什么意思?03- enctype"multipart/form-data" 是什么意思࿱…...
Kafka 消费者“group_name”组正在永远重新平衡
目录 一、场景1.1、场景应用环境1.2、 问题重现二、问题分析三、解决方案一、场景 1.1、场景应用环境 卡夫卡:2.11-1.0.1。主题:并发度为 5 且分区为 5 。1.2、 问题重现 当应用程序重新启动并且在分区分配之前在主题上发布消息时,主题的 5 个消费者找到组协调器并向组协调…...
 
高并发编程-3. Amdahl(阿姆达尔)定律与Gustafson定律
此文章为笔记,为阅读其他文章的感受、补充、记录、练习、汇总,非原创,感谢每个知识分享者。 前言 有关为什么要使用并行程序的问题前面已经进行了简单的探讨。总的来说,最重要的应该是处于两个目的。 第一,为了获得更…...
ffmpeg之常用的命令行参数
FFmpeg是一套可以用来转换数字音频、视频的开源代码工程,能够编译出SDK(库)和命令行工具。用户可以使用SDK开发程序实现音视频的操作,也可以使用命令行工具ffmpeg实现音视频的操作。 一、常用参数 -i inputfile 指定输入文件 -s…...
 
tomcat服务器
tomcat下载安装 1、认识tomcat服务器 tomcat用来管理web应用,叫应用服务器,tomcat本身也是java工程 为什么要使用tomcat 为了达到资源共享。 在静态web,俩种访问方式 一种是找到文件的磁盘路径,一种是直接点击右上角的浏览器图标 直接点击…...
 
【面试题】MVC、MVP与MVVM模式是什么?
MVC模式 MVC是应用最广泛的软件架构之一,一般MVC分为: Model( 模型 )、Controller( 控制器 )、View( 视图 )。 这主要是基于分层的目的,让彼此的职责分开。View 一般…...
 
网络安全02-C段扫描、开放端口
查询网站IP https://seo.chinaz.com/hetianlab.com 扫描指定IP:例:nmap -A -T4 ww.hetianlab.com -oX out.html 扫描指定段:例:nmap -O -Pn -A 192.168.113.1-200 扫描整个C段:例:nmap -O -Pn -A 192.168.…...
 
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
 
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
 
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
 
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
 
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
 
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
 
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
 
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
 
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
