厚积薄发打卡Day55 :[狂神]Redis详细教程(上)<从Nosql 概述到WSL安装Redis踩坑记录>

本文介绍了Nosql的背景和发展,包括单机数据库、Memcached时代、水平拆分和大数据时代的演进。重点讲解了Redis作为NoSql数据库的入门,包括其Linux安装过程中的坑点,以及Redis的性能测试和基础知识点。文中还探讨了Redis作为单线程数据库的优势,并对比了Redis与Memcached的差异。
摘要由CSDN通过智能技术生成

视频教程:【狂神说Java】Redis最新超详细版教程通俗易懂

Nosql概述

时代背景:

1.单机数据库时代

在这里插入图片描述

90年代:一个基本的网站访问量一般不会太大,单个数据库完全足够!

  • 那个时候,更多的去使用静态网页 Html~服务器根本没有太大的压力!

    • 思考一下,这种情况下:整个网站的瓶颈是什么?

      1,数据量如果太大,一个机器放不下了!

      2,数据的索引(B+Tree),一个机器内存也放不下

      3.访问量(读写混合)

2.Memcached时代

memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。

memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。

memcached的API使用三十二比特的循环冗余校验(CRC-32)计算键值后,将数据分散在不同的机器上。当表格满了以后,接下来新增的数据会以LRU机制替换掉。由于memcached通常只是当作缓存系统使用,所以使用memcached的应用程序在写回较慢的系统时(像是后端的数据库)需要额外的代码更新memcached内的数据。

(缓存) + 数据库 +垂直拆分(读写分离)[此处的数据库都是指mysql数据库]

在这里插入图片描述

数据库垂直拆分与水平拆分的方式和问题

垂直拆分:
顾名思义是将表垂直着给拆掉,即:

  • 将表的字段拆成多张表(列拆分)

水平拆分:
顾名思义是将表数据水平的拆掉,即:

  • 将表的内容进行拆分(行拆分),一表内容放多表存储。

在这里插入图片描述

3. 水平拆分

分库分表+水平拆分+Mysql集群

数据库拆分:横向拆分和纵向拆分

技术和业务在发展的同时,对人的要求也越来越高了

本质:数据库(读,写)

早些年MyISAM:表锁,十分影响效率!高并发下就会出现严重的锁问题

转战Innodb:行锁

慢慢的就开始使用分库分表来解决写的压力!MySQL 在哪个年代推出了表分区!这个并没有多少公司使用!

MySQL 的集群,很好满足哪个年代的所有需求!

MyISAM与InnoDB 的区别(9个不同点)

  1. InnoDB支持事务,MyISAM不支持;

  2. InnoDB支持外键,而MyISAM不支持;

  3. InnoDB是聚集索引,使用B+Tree作为索引结构,数据文件是和(主键)索引绑在一起的(表数据文件本身就是按B+Tree组织的一个索引结构),必须要有主键,通过主键索引效率很高。
    MyISAM是非聚集索引,也是使用B+Tree作为索引结构,索引和数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。

  4. InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快(注意不能加有任何WHERE条件);

  5. Innodb不支持全文索引,而MyISAM支持全文索引,在涉及全文索引领域的查询效率上MyISAM速度更快高;PS:5.7以后的InnoDB支持全文索引了

  6. MyISAM表格可以被压缩后进行查询操作

  7. InnoDB支持表、行(默认)级锁,而MyISAM支持表级锁

    ​ InnoDB的行锁是实现在索引上的࿰

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值