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> exit

D:\《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

相关推荐
我爱挣钱我也要早睡!11 分钟前
Java 复习笔记
java·开发语言·笔记
luckys.one3 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
言之。4 小时前
Django中的软删除
数据库·django·sqlite
汇能感知5 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun5 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao5 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾6 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
阿里嘎多哈基米6 小时前
SQL 层面行转列
数据库·sql·状态模式·mapper·行转列
抠脚学代码6 小时前
Ubuntu Qt x64平台搭建 arm64 编译套件
数据库·qt·ubuntu
jakeswang6 小时前
全解MySQL之死锁问题分析、事务隔离与锁机制的底层原理剖析
数据库·mysql