redis笔记

–前提:环境搭建在远程服务器上

nosql概述

为什么要用nosql

1.单机MySQL时代
在这里插入图片描述
问题: 一个基本的网站数据访问量基本不会太大,单个数据库完全够用
那个时候,更多的去使用静态网页html -服务器根本没有太大的眼里

思考以下:这种情况下,整个网站瓶颈是什么?
1.数据量如果太大,一个机器放不下
2.数据的索引(B+),一个机器内存也放不下
3.访问量(读写混合),一个服务器承受不了
只要你开始出现以上三种情况之一,那么你就必须要晋级。

2.Memcached + Mysql + 垂直拆分(读写分离----主要解决读问题)
网站80%的情况下都是在读 ,如果每次都去查询数据库的话就十分麻烦!所以我们希望减轻数据库的压力,我们可以使用缓存来保证效率。
在这里插入图片描述
**发展过程:**优化数据结构和索引 —> 使用文件缓存(IO操作)—> Memcached(当时最热门的技术!)

3.分库分表 + 水平拆分 + MySQL集群(—解决写的问题)
本质:数据库(读、写)
早些年MyISAM:表锁,十分影响效率,高并发会有十分严重的锁问题
转战InnoDB:行锁
慢慢地开始使用分库分表来解决写的压力!MySQL在那个年代推出了表分区(并没有多少公司使用)!
后来推出了MySQL集群,很好满足了那个年代的大部分需求。
在这里插入图片描述
4.如今最近的年代
2010-2020十年时间,世界发生了翻天覆地的变化!(定位,也是一种数据)
MySQL等关系新数据库就不够用了!数据量很大,变化很大。
MySQL有的使用它来存储一些比较大的文件、博客、图片。数据库表很大,效率就低了!如果有一种数据库来专门处理这种数据,MySQL要来就变得十分小(研究如何处理这些问题!) 大数据IO压力下,表几乎没法更改。 比如一亿行的表加一列?

目前一个基本的互联网项目
在这里插入图片描述
为什么要用noSQL呢?
用户的跟人信息,社交网络,地理位置。用户自己产生的数据、用户日志等等爆发时增长。
这时候我们就需要用noSQL数据库,noSQL可以很好处理以上的情况!

什么是noSLQ

NoSQL

NoSQL = NOT ONLY SQL (不仅仅是SQL)

关系型数据库:表格,行 ,列(POI技术)

泛指非关系型数据库的,随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代! 尤其是超大规模的高并发的社区! 暴露出来很多难以克服的问题,NoSQL在当今大数据环境下发展十分地迅速,Redis发展是最快的。

很多的数据类型用户的 个人信息,社交网络,地理位置。这些数据类型的存储都不需要一个固定的格式!不需要多余的操作就可以横向扩展(or纵向)!
Map<String,Object> 使用键值对来控制!

NoSQL特点

1.方便扩展!(数据之间没有关系,很好扩展)
2.大数据量高性能!(Redis 一秒 可以写8万次,读取11万次,noSQL的缓存记录级,是一种细粒度的缓存)
3.数据类型是多样性的!(不需要事先设计数据库!数据随取随用!mysql如果是数据量十分大的表,很多人就无法设计了!)
4.传统的RDBMS 和NoSQL

  • 传统的RDBMS
    • 结构化组织
    • SQL
    • 数据和关系都存在单独的表中
    • 数据操作、数据定义语言
    • 严格的一致性
    • 基础的事务操作
  • NoSQL
    • 不仅仅是数据
    • 没有固定的查询语言
    • 有很多种存储方式,键值对存储,列存储,文档存储,图形数据库(社交关系)
    • 最终一致性
    • CAP定理和BASE (异地多活)
    • 高性能(保证用户体验和性能)、高并发、高可扩展性(机器不够了,随时加一台服务器)

真正在公司中的实践:NoSQL + RDBMS 一起使用才是最强的。

阿里巴巴演进分析

思考: 这么多的东西,都是在一个数据库中的吗?

技术记不得?越是慢慢学,才能越扎实。

开源才是技术的王道?

如果你未来想当一个架构师,没有什么是再加一层解决不了的。

# 1.商品的基本信息
名称、价格、商家信息     
关系型数据库就可以解决了 ! MySQL/Oracle  (淘宝早年就去IOE了)
淘宝内部的MySQL 不是大家用的MySQL
# 2. 商品的描述、评论(文字比较多)
文档型数据库中,MongoDB
# 3.图片
分布式文件系统 FastDFS 
- 淘宝自己的TFS
- Google 的GFS
- Hadoop   HDFS
- 阿里云的   OS
# 4.商品的关键字(搜索)
-搜索引擎  solr elasticsearch
- ISerach: 多隆 
 #5.商品热门的波段信息
- 内存数据库
- Redis  Tair MeMche 
#6.商品的交易、外部的支付接口
- 三方引用

大型互联网问题:

  • 数据类型太多了
  • 数据源太多了,经常重构
  • 数据要改造,需要大面积改造

解决问题:

  • 统一数据服务层UDSL

NoSQL的四大分类

KV键值对

  • 新浪:Redis
  • 美团:Redis + Tair
  • 阿里、百度:Redis+memecache

文档型数据库(bson格式)

和json一样,是二进制的json

  • MongoDB
    • MongoDB是一个基于分布式文件存储的数据库,是由C++编写的,主要用来处理大量的文档!
    • MongoDB是一个介于关系型数据库和非关系型数据库中中间的产品!MongoDB是NoSQL数据库中功能最丰富,最像关系型数据库的。
  • ConthDB

列存储数据库

  • HBase
  • 分布式文件系统

图关系型数据库

在这里插入图片描述

  • 它不是存储图形,放到是关系。比如:朋友圈 社交网络,广告推荐!
  • Neo4j,InfoGrid

Redis 入门

概述

redis 是什么?
Redis( Remote Dictionary Server),远程服务字典!
是一个开源的 使用ANSI C语言编写、支持网络、可支持内存亦可支持持久化的日志型、Key-Value数据库,并提供多种语言的API。

免费和开源! 是当下最热门的NoSQL技术之一!也被人称之为结构化数据库!

Redis能干嘛?
1、内存存储、持久化,内存中是断电即失、所以说持久化很重要(rdb,aof)
2、效率高,可用于高速缓存
3、发布订阅系统
4、地图信息分析
5、计时器、计数器(浏览量)
6…
Redis 特性
1、多样的数据类型
2、持久化
3、集群
4、事务

Redis学习配置
1、redis官网
2、redis 中文网
3、下载地址:通过官网下载即可
注意:window 在Github上下载既可以(停更很久了)
Redis推荐都是在Linux服务器搭建,我们是基于Linux学习的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值