NoSql入门和概述 入门概述 为什么要使用NoSql? 1.单机mysql的美好年代 在早些年以前,那时候网站的访问量不大,用单个数据库完全可以应付.而且那个时候,绝大部分都是LAMP架构:Linux + Apache + Mysql + Php.而且当时很多都是静态网页,动态交互类型的网站不多,而且数据量也无法跟现在相比. 但是放在现在这个数据量爆炸式增长的时代,上面的架构就出现了瓶颈.比如:数据量大到一台机器放不下了怎么办?数据的索引(B + Tree)一个机器的内存放不下时怎么办?访问量…
zt  http://www.cnblogs.com/captainl1993/p/4788236.html 1.数据服务器详细设计 数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改. 数据层次上分为:内存数据,redis数据,mysql数据 设计目的:首先保证数据的可靠,防止数据丢失,保证数据完整.然后实现数据的高速访问,减少由玩家数量增加对数据服务器性能造成的影响.最后实现运维数据的入库,以及数据持久化. 在这个基础上数据服务器不再是一个单一服务器,它涉及到与其他服务器…
1 Redis存储机制: redis存储的数据类型包括,String,Hash,List,Set,Sorted Set,它内部使用一个redisObject对象来表示所有的key和value,这个对象基本结构见下: typedef struct redisObject { unsigned type,           // 4字节,数据类型 unsigned encoding,       // 4字节,编码方式 unsigned lru,            // 24字节,置换算法 i…
如果现在的我们离开了互联网,生活会是什么样子? 互联网++++,已经深刻渗透到人们的生活中. 不知道大家有没有想过?每一个互联网+结合的背后都是海量的存储需求.你查看的每一个商品.组建的每一个战队.阅读的每一篇文章,基于互联网的每一个兴趣爱好,都有它的key和value. 在 key-value 数据库领域,Redis 因其高吞吐.低延迟.丰富的数据结构一直受开发者欢迎,但 Redis 全内存方案无法解决海量数据所带来的规模与成本问题,数据可靠性也面临挑战. 目前业界也有很多基于磁盘的键值存储方…
一.前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分. 我们使用Redis时,会接触Redis的5种对象类型(字符串.哈希.列表.集合.有序集合),丰富的类型是Redis相对于Memcached等的一大优势.在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有很大帮助,例如: 1.估算Redis内存使用量.目前为止,内存的使用成本仍然相对较高,使用内存不能无…
1. Reids内存的划分 数据 内存统计在used_memory中 进程本身运行需要内存 Redis主进程本身运行需要的内存占用,代码.常量池等 缓冲内存,客户端缓冲区.复制积压缓冲区.AOF缓冲区.有jemalloc分配内存,会统计在used_memory中 内存碎片 Redis在分配.回收物理内存过程中产生的.内存碎片不会统计在used_memory中.如果Redis服务器中的内存碎片已经很大,可以通过安全重启的方式减小内存碎片:因为重启之后,Redis重新从备份文件中读取数据,在内存中进…
原文:http://shiyanjun.cn/archives/744.html 该论文来自Berkeley实验室,英文标题为:Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing.下面的翻译,我是基于科学网翻译基础上进行优化.修改.补充,这篇译文翻译得很不错.在此基础上,我增加了来自英文原文的图和表格数据,以及译文中缺少的未翻译的部分.如果翻译措辞或逻辑有误,欢迎…
tmpfs是一种基于内存的文件系统, tmpfs有时候使用rm(物理内存),有时候使用swap(磁盘一块区域).根据实际情况进行分配. rm:物理内存.real memery的简称? 真实内存就是电脑主板上那块内存条,叫做真实内存不为过. swap:交换分区.是硬盘上一块区域 tmpfs最大可使用的大小为什么是rm+swap. SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用. 它和Windows系统的交换文件作用类似,但是…
Spark是基于内存的分布式计算引擎,以处理的高效和稳定著称.然而在实际的应用开发过程中,开发者还是会遇到种种问题,其中一大类就是和性能相关.在本文中,笔者将结合自身实践,谈谈如何尽可能地提高应用程序性能. 分布式计算引擎在调优方面有四个主要关注方向,分别是CPU.内存.网络开销和I/O,其具体调优目标如下: 提高CPU利用率. 避免OOM. 降低网络开销. 减少I/O操作. 第1章 数据倾斜 数据倾斜意味着某一个或某几个Partition中的数据量特别的大,这意味着完成针对这几个Partiti…
转载自:http://shiyanjun.cn/archives/744.html 摘要 本文提出了分布式内存抽象的概念--弹性分布式数据集(RDD,Resilient Distributed Datasets),它具备像MapReduce等数据流模型的容错特性,并且允许开发人员在大型集群上执行基于内存的计算.现有的数据流系统对两种应用的处理并不高效:一是迭代式算法,这在图应用和机器学习领域很常见:二是交互式数据挖掘工具.这两种情况下,将数据保存在内存中能够极大地提高性能.为了有效地实现容错,R…