zoukankan      html  css  js  c++  java
  • Redis:增大并发量的演进过程

    前言:

    互联网最初,数据仅仅只是单机的mysql就能满足需求,但随着互联网大数据时代的来临,并发量也上升了好几个量级,因此相关高并发的解决方案也随之诞生

    一:垂直拆分

    主从复制,读写分离思想

    注意:无论是垂直拆分还是水平拆分,它仅仅是一种思想

    解决方案:Memcached(缓存)+MySQL+垂直拆分

    优化数据结构和索引-->文件缓存(I/O)-->Memcached

                

    因为网站大多数情况下读操作是占比较大的一部分,所以缓存处理的解决方案非常的适合,因此诞生了读写分离+出从复制;这也是后续提高并发的基础

    二,水平拆分

    解决方案:分库分表+MySQL集群+水平拆分

    解释:就是将原本一个表的数据分成多个,在客户访问时,访问信息也分成多个,去相应表中查,最后和成一个完整的信息返回个客户端

    本质:提高并发量的本质就是对读写进行分析

    拓展:行锁和表锁

    答:当数据量庞大时:如果是表锁,用户搜索一条数据,数据库会把整个表锁上,知道查询出结果后,其他进程才能去访问当前表,而行锁就解决了此问题

      这是MyISAM和Innodb的区别之一

    表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;
    行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高;   

     

    三,当今时代

    当今时代不仅仅集成的以前的解决方案思想,由于当前并发量十分的庞大,比如热点榜单,要满足实时的高并发的读写操作,此时关系型(ORM)数据库已经不能满足需求了

    因此nosql被引进过来,它结构简单(kv键值对),所以能很好的配置orm数据库实现高并发的操作

    四,拓展:NoAQL~not only SQL

    NoSQL四大基本类型:

      kv键值对:redis

      列存储:HBase

      图存储:Grap

      文档:MongoDB

    非关系型数据库,本质(解耦)

    优点:

       高扩展性(数据库直接没有关系,扩展方便)

       读写能力强(高并发,一秒能写8万次,读取11万次,NoSQL)

       数据类型是多样型的(不需要事先设计数据库,随去随用)

       没有固定的查寻语言(最常用:get set)

  • 相关阅读:
    数据切分——Atlas介绍
    HDU 5015 233Matrix (构造矩阵)
    Wincc操作数据库SQLSERVER
    UIWebView 设置背景为透明
    29个你必须知道的Linux命令
    【读书笔记】iOS-UIWindow-WindowLevel
    linux下uart应用编程
    Java Web HelloWorld!
    手把手图文教你eclipse下如何配置tomcat
    Tomcat安装及配置教程
  • 原文地址:https://www.cnblogs.com/CL-King/p/14468495.html
Copyright © 2011-2022 走看看