NoSQL入门

Redis

Posted by BC on September 10, 2019
graph LR A[NOSQL] -->B(为什么用NOSQL) B-->C1(MYSQL不够用) C1-->D(数据量大 单机放不下) C1-->E(索引B+树 单机内存放不下) C1-->F(一个实例不能承受访问量) B-->C2(过去的改进方案) C2-->D2("memcached高速缓存+垂直切分(不同表数据放不同库)") C2-->E2(主从读写分离) C2-->F2("分表分库+水平拆分(同表数据放不同库)+mysql集群") F2-->F3("主库写压力大,MySQL用InnoDB(行锁)代替MyISAM(表锁)") C2-->G2(MYSQL的扩展性瓶颈) B-->C3(现在的业务需求) C3-->D3("用户数据、行为日志增加 SQL不适合大数据挖掘") A-->B2(什么是NOSQL) B2-->C4(Not Only MySQL 非关系型DB 数据存储不需要固定模式) B2-->D4(K-V存储) B2-->E4("不用ACID 原子 一致 隔离 持久") B2-->F4(Redis Memcached Mongodb) A-->B3(怎么玩) B3-->C5(KV) B3-->D5(Cache) B3-->E5(Persistence)