微信PK10源码下载与Redis_NOSQL简介

一、NoSQL入门与概述
1、互联网背景下为什么要用NoSQL?

1)单机mysql年代
在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。微信PK10源码下载QQ:2152876294 网址diguaym.com

上述架构下,我们来看看数据存储的瓶颈是什么?

数据量的总大小 一个机器放不下时
数据的索引(B+ Tree)一个机器的内存放不下时
访问量(读写混合)一个实例不能承受
如果满足了上述1 or 3个,进化......

2)Memcached(缓存)+MySQL+垂直拆分
后来,随着访问量的上升,几乎大部分使用MySQL架构的网站在数据库上都开始出现了性能问题,web程序不再仅仅专注在功能上,同时也在追求性能。程序员们开始大量的使用缓存技术来缓解数据库的压力,优化数据库的结构和索引。开始比较流行的是通过文件缓存来缓解数据库压力,但是当访问量继续增大的时候,多台web机器通过文件缓存不能共享,大量的小文件缓存也带了了比较高的IO压力。在这个时候,Memcached就自然的成为一个非常时尚的技术产品。

Memcached作为一个独立的分布式的缓存服务器,为多个web服务器提供了一个共享的高性能缓存服务,在Memcached服务器上,又发展了根据hash算法来进行多台Memcached缓存服务的扩展,然后又出现了一致性hash来解决增加或减少缓存服务器导致重新hash带来的大量缓存失效的弊端

3)MySQL主从读写分离
由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力。读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性。Mysql的master-slave模式成为这个时候的网站标配了。

4)分表分库+读写拆分+mysql集群
在Memcached的高速缓存,MySQL的主从复制,读写分离的基础之上,这时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,由于MyISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。

同时,开始流行使用分表分库来缓解写压力和数据增长的扩展问题。这个时候,分表分库成了一个热门技术,是面试的热门问题也是业界讨论的热门技术问题。也就在这个时候,MySQL推出了还不太稳定的表分区,这也给技术实力一般的公司带来了希望。虽然MySQL推出了MySQL Cluster集群,但性能也不能很好满足互联网的要求,只是在高可靠性上提供了非常大的保证。

5)MySQL的扩展性瓶颈
MySQL数据库也经常存储一些大文本字段,导致数据库表非常的大,在做数据库恢复的时候就导致非常的慢,不容易快速恢复数据库。比如1000万4KB大小的文本就接近40GB的大小,如果能把这些数据从MySQL省去,MySQL将变得非常的小。关系数据库很强大,但是它并不能很好的应付所有的应用场景。MySQL的扩展性差(需要复杂的技术来实现),大数据下IO压力大,表结构更改困难,正是当前使用MySQL的开发人员面临的问题。

6)今天架构的样子?

7)为什么使用NoSQL?

今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了, NoSQL数据库的发展也却能很好的处理这些大的数据。

2、NoSQL是什么?

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。
(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

3、NoSQL能干嘛?——特点

1)易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系特征。数据之间没有关系,这样就非常容易扩展。也无形之间在架构层面上带来了扩扩展的能力。

2)大数据量高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于他的无关系性,数据库的简单结构。一般MySQL使用Query Cache,每次表的更新Cache都会失效,是一种大粒度的Cache,在针对Web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面来说就要性能高很多了。

3)多样灵活的数据模型
NoSQL无需事先要为存储的数据建立字段,随时都可以存储自定义的数据格式。而在非关系数据库里,增删字段是非常麻烦的事情。如果是非常大数据量的表,增加字段简直是一个噩梦。

4)传统的 RDBMS vs NoSQL
RDBMS

高度组织化结构化数据
结构化查询语言(SQL)
数据和关系都存储在单独的表中
数据库操纵语言,数据库定义语言
严格的一致性
基础事务
NoSQL

代表着不仅仅是SQL
没有声明性查询语言
没有预定义的模式
键-值 对存储,列存储,文档存储,图形数据库
最终一致性而非ACID属性
非结构化和不可预知的数据
CAP定理
高性能,高可用性和可伸缩性
4、NoSQL常用

Redis、MongoDB

二、3V+3高
1、大数据时代的3V

1)海量Volume

2)多样Variety

3)实时Velocity

2、互联网需求的3高

1)高并发

2)高可扩(高可用)

3)高性能

原文地址:http://blog.51cto.com/13912011/2155573

时间: 2024-08-03 18:24:14

微信PK10源码下载与Redis_NOSQL简介的相关文章

Linux nohup命令详解pk10源码下载

现象:pk10源码下载(企 娥:217 1793 408) 把java程序打成jar包后,放到linux上通过putty或其它终端执行的时候, 如果按照:java -jar xxxx.jar执行,当我们退出putty或终端的时候,xxxx.jar这个程序也会停止. 为了保证程序能够一直运行,应该改为这样运行:nohup java -jar xxx.jar&命令,则程序会在后台一直运行, 值得注意的是,此时程序控制台输出会被转移到nohup.out文件中, 这个nohup.out文件的位置就在ja

微信PK10源码搭建与Docker学习

一.Docker常用命令:载入一个镜像:docker pull 微信PK10源码搭建QQ:2152876294 网址diguaym.com 举例:docker pull training/webapp 意思为:载入一个training/webapp的镜像 创建一个新的容器:docker run [选项] 镜像文件 选项:-d(创建到后台) -t:在新容器内指定一个伪终端或终端 -i:允许你对容器内的标准输入 (STDIN) 进行交互 -p(映射自定义端口:434:5000) -P(自动映射端口,

最新微信牛牛源码下载搭建教程

最低配置:linux服务器,系统: CentOS 6.8,内存2G以上,独享5M以上带宽 最新微信牛牛源码QQ:2164097691 地址:h5.hubawl.com <!--{template common/header}--><!--{if $tagname}--><div id="pt" class="bm cl"> <div class="z"> <a href="./&qu

2018新版微信极速赛车飞艇8合一源码下载搭建

2018新版微信极速赛车飞艇8合一源码下载搭建教程:http://fanshubbs.com/thread-255-1-1.html 参考搭建源码项目 <微信公众号北京赛车PK10源码下载> 示例代码 C++ #include "hpsocket/HPSocket.h" /* Listener Class */ class CListenerImpl : public CTcpPullServerListener { public: // 5. process networ

【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/51592930 手机的两种模式 : 在下面有详细的图片示例; -- Recovery 模式 : 音量键增加 + 电源键, 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式; -- Fastboot 模式 : 音量键减小 + 电源键, 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FA

北京赛车 PK10 微信公众号程序源码下载

北京赛车  PK10 微信公众号程序源码下载:http://www.ttkmwl.com/thread-639-1-1.html 北京赛车  PK10  游戏玩的人越来越多,  目前  PK10  "  的  13  个玩法为:  猜冠军.  猜冠亚军.  猜前三名.猜前四名.猜前五名.猜前六名.猜前七名.猜前八名.猜前九名.猜前十名以  及精确前二.精确前三.精确前四.所以玩  PK10  赚钱必不可少的需要一些辅助软件来提高  中奖率,下面来介绍一款智能生成  PK10  计划给大家使用.

微信小程序源码下载(200多个)

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微

【史上最全】微信朋友圈游戏源码下载

源码介绍:  所有源码都是html5开发,可以跨平台,无论谷歌安卓还是苹果ios都可以流畅运行,游戏可以根据自己的情况添加链接,可以分享到微信圈后跳转的你的游戏平台页.个别游戏可以设置指定次数提示添加微信账号回复指定内容获得答案.保证游戏可运行性,不像某些不良卖家价格很高买来的根本没几个能用或者很多凑数游戏. 一个简单的营利模式: 通过手机作为入口,分享某某游戏的得分到朋友圈,朋友圈内的病毒式传播速度超过你想象.然后你可以自己加入关注微信代码.百度移动广告代码.淘客代码.等等吧,可以发挥的空间非

用c#开发微信 (4) 基于Senparc.Weixin框架的接收事件推送处理 (源码下载)

本文讲述使用Senparc.Weixin框架来快速处理各种接收事件推送.这里的消息指的是传统的微信公众平台消息交互,微信用户向公众号发送消息后,公众号回复消息给微信用户.包括以下类型: 1 subscribe/unsubscribe: 关注/取消关注事件 2 scan: 扫描带参数二维码事件 3 location: 上报地理位置事件 4 click: 自定义菜单事件     1) click: 点击菜单拉取消息时的事件推送     2) view: 点击菜单跳转链接时的事件推送     3)