redis知识点整理(1)NoSQL概述

前言

关于redis,最近在b站看了一个比较全面的视频,并且与此同时打算做个笔记,为了更好的理解和以后的复习。ps:我看的视频是狂神说java中的一个系列。
这个视频我觉得最好的一点,也是up主说的我比较喜欢的一句话:知史明智。
redis我在工作中用了一年多了,其中get/set用的飞起,闭着眼睛都能写了的那种。五种数据类型也倒背如流,但是面试的时候经常被问卡住,因为稍微深一点的东西就不懂了,使用的话下载,安装,导入依赖,配置文件,get/set。说十分钟学会有点夸张,但是对着教程半小时怎么也会用了。但是会用不代表就懂了,就会redis了。初级程序员也都能用,有个名词角做javaAPI接口调用工程师,形象不形象?作为一个从业三年多的程序员,知其所以然才是根本。
下面开始一点点的整理知识。因为我这里是按照视频教程整理的,可能会有一定的个人色彩,比如我懂的或者我觉得不重要的可能会一笔带过,如果看了觉得不够不懂也建议你去看我说的视频源。

NoSQL概述

为什么要用NoSQL

1. 单机MySQL的年代
90年代,一个基本的网站访问量比较小,单个数据库完全足够,那个时候多是静态html,主要内容也是文字,服务器没有太大压力。
但是随着发展,出现了问题:

  • 数据量太大,一个机器放不下。
  • 数据的索引一个机器内存放不下。
  • 访问量(读写混合)一个服务器承受不了。


    单机数据库

2. Memcached(缓存)+读写分离+垂直拆分
因为网站百分之八十的情况都是在读,每次都去查询数据库就很麻烦而且没必要,所以使用缓存。缓存的作用就是在数据没有改动的前提下,可以直接从缓存中读取(spring中是有这个功能的,具体怎么实现的都可以,主要是这个思路)。
并且与此同时,刚刚都说了主要是读的时候多,当访问量过大一个服务器承受不了,可以采取读写分离的策略。打个比方:建立三个数据库,1,2,3。其中1,3用来读数据,2用来写数据。采用一定的方法让1,2,3的数据可以同步,这样就大大减少了对数据库的压力。

从单机mysql到缓存+读写分离

发展过程:

  • 优化数据结构和算法
  • 使用文件缓存(io操作,io缓存不能共享)
  • Memcached出现(当时最热门的技术)

3. 分库分表+水平拆分+mysql集群
当读写分离垂直拆分还满足不了需求,那么分库分表出现了。其实这个是顺下来的一个思路:当单纯的读写分离满足不了需求,那么哪怕分库以后,也是有压力的,所以一定是每一个子库,也要做读写分离。主从复制。所以演变成了集群。

分库分表+集群

数据库的本质就是读和写,其实随着发展数据库自身也在不断优化,早些年用MyISAM,是表锁,十分影响效率,高并发下就会出现严重的锁问题。而现在一般用InnoDB,是行锁,性能大大提高了。

4. 如今最近的年代
近十年的技术发展,超过了前几千年。这是一个技术爆炸的时代。就连定位都是一种数据了。随着海量的多样的数据需求出现(比如热榜,实施排行,关系网等),mysql等关系型数据库已经不够用了,比如较大的文件,图片,博客等,存在mysql不合适,所以随着这种需求,出现了非关系型数据库,也就是NoSQL。(ps:为什么是非关系型:因为在大数据的压力下,再去修改表结构是件很难的事,比如一个用户表一亿条数据,现在这个表加一个字段。单单加字段的行为就很可怕。)

什么是NoSQL

NoSQL(Not only SQL,不仅仅是sql),泛指非关系型数据库,随着web2.0互联网的诞生,传统的关系型数据库很难满足现在的需求了,尤其是超大规模的高并发社区,暴露出来很多难以克服的问题,所以出现了NoSQL。

很多数据类型:比如用户的社交网络,地理位置,这些数据类型的存储都不需要一个固定的格式,不需要多余的操作就可以横向扩展的。比如java中的一个数据类型:Map<String,Object>。

NoSQL特点
  • 方便扩展(数据之间没有关系,很好扩展。比如redis,你可以往里存任何你想存的信息,只要有唯一的key就行。而且你不管删除哪个也不会对别的有影响。)
  • 大数据量高性能(redis一秒可以写8万次,一秒可以读11万次。)
  • 数据类型是多样的(不需要事先设计数据库)。

所以现在真正实践起来,是关系型数据库+非关系型数据库一起使用的。
打个比方,一个互联网行业的电商的商品页:


一个商品页信息的来源

Nosql的四大分类

1. KV键值对(例如redis,tair)
2. 文档型数据库(bson格式和json一样,但是是二进制的。典型的就是MongoDB)
 - MongoDB是一个基于分布式文件存储的数据库(c++编写,主要用来处理大量的文件)。MongoDB是一个介于关系型数据库和非关系型数据的中间产品,是非关系型数据库中功能最丰富,最像关系型数据库的。
3. 列存储数据库(HBase,分布式文件系统)
4. 图型数据库(他不是存图形,存的是关系,比如朋友圈社交网络,广告推荐等。比如Neo4j)
百度百科对四类非关系型数据库的总结
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352