技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

Redis源码分析(十七)

        redis作为一非关系型数据库,竟然同样拥有与RDBMS的事务操作,不免让我觉得比较惊讶。在redis就专门有文件就是执行事务的相关操作的。也可以让我们领略一下,在Redis的代码中是如何实现事务操作。首先亮出mulic.c下面的一些API。... 全文

nosql数据库 源码 redis

MongoDB 数据库简单介绍(安装篇)

1、安装准备[root@chen download]# tar zxvf mongodb-linux-x86_64-2.2.0.tgz [root@chen download]# cp mongodb-linux-x86_64-2.2.0 /usr/local/mongodb -r2、创建数据库文件夹与日志文件[root@chen download]# mkdir /usr/local/mongodb/data [root@chen download]# touch /usr/local/mongodb/logs设置开机自启动将mongodb启动项目追加入rc.local保证mongodb在服务器开机时启动[root@chen download]# echo "/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data –logpath=/usr/local/mongodb/logs –logappend        --auth –port=27017" >> /etc/rc.local启动mongodbcd到mongodb目录下的bin文件夹启动mongodb//下面这个是需要权限的登录方式, 用户连接需要用户名和密码 [root@chen download]# /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend        --auth        --port=27017 --fork //这个是不需要密码的 [root@chen download]# /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend        --port=27017 --fork参数解释: --dbpath 数据库路径(数据文件)          --logpath 日志文件路径          --master 指定为主机器          --slave 指定为从机器          --source 指定主机器的IP地址          --pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。          --logappend 日志文件末尾添加          --port 启用端口号          --fork 在后台运行          --only 指定只复制哪一个数据库          --slavedelay 指从复制检测的时间间隔          --auth 是否需要验证权限登录(用户名和密码)          -h [ --help ]             show this usage information          --version                 show version information          -f [ --config ] arg       configuration file specifying additional options          --port arg                specify port number          --bind_ip arg             local ip address to bind listener - all local ips                                    bound by default          -v [ --verbose ]          be more verbose (include multiple times for more                                    verbosity e.g. -vvvvv)          --dbpath arg (=/data/db/) directory for datafiles    指定数据存放目录          --quiet                   quieter output   静默模式          --logpath arg             file to send all output to instead of stdout   指定日志存放目录          --logappend               appnd to logpath instead of over-writing 指定日志是以追加还是以覆盖的方式写入日志文件          --fork                    fork server process   以创建子进程的方式运行          --cpu                     periodically show cpu and iowait utilization 周期性的显示cpu和io的使用情况          --noauth                  run without security 无认证模式运行          --auth                    run with security 认证模式运行          --objcheck                inspect client data for validity on receipt 检查客户端输入数据的有效性检查          --quota                   enable db quota management   开始数据库配额的管理          --quotaFiles arg          number of files allower per db, requires --quota 规定每个数据库允许的文件数          --appsrvpath arg          root directory for the babble app server           --nocursors               diagnostic/debugging option 调试诊断选项          --nohints                 ignore query hints 忽略查询命中率          --nohttpinterface         disable http interface 关闭http接口,默认是28017          --noscripting             disable scripting engine 关闭脚本引擎          --noprealloc              disable data file preallocation 关闭数据库文件大小预分配          --smallfiles              use a smaller default file size 使用较小的默认文件大小          --nssize arg (=16)        .ns file size (in MB) for new databases 新数据库ns文件的默认大小          --diaglog arg             0=off 1=W 2=R 3=both 7=W+some reads 提供的方式,是只读,只写,还是读写都行,还是主要写+部分的读模式          --sysinfo                 print some diagnostic system information 打印系统诊断信息          --upgrade                 upgrade db if needed 如果需要就更新数据库          --repair                  run repair on all dbs 修复所有的数据库          --notablescan             do not allow table scans 不运行表扫描          --syncdelay arg (=60)     seconds between disk syncs (0 for never) 系统同步刷新磁盘的时间,默认是60s                    Replication options:          --master              master mode 主复制模式          --slave               slave mode 从复制模式          --source arg          when slave: specify master as <server:port> 当为从时,指定主的地址和端口          --only arg            when slave: specify a single database to replicate 当为从时,指定需要从主复制的单一库          --pairwith arg        address of server to pair with          --arbiter arg         address of arbiter server 仲裁服务器,在主主中和pair中用到          --autoresync          automatically resync if slave data is stale 自动同步从的数据          --oplogSize arg       size limit (in MB) for op log 指定操作日志的大小          --opIdMem arg         size limit (in bytes) for in memory storage of op ids指定存储操作日志的内存大小                   Sharding options:          --configsvr           declare this is a config db of a cluster 指定shard中的配置服务器          --shardsvr            declare this is a shard db of a cluster 指定shard服务器进入数据库的CLI管理界面        cd到mongodb目录下的bin文件夹,执行命令./mongo        运行如下:若数据库出现如不能连上,则是一个data目录下的mongod.lock文件的问题,可以用如下的修复的命令,        mongod --repair 本文出自 “平凡的日子” 博客,请务必保留此出处http://wolfchen.blog.51cto.com/2211749/1096478... 全文

nosql MongoDB 十全十美

Ming Lei:适用企业的NoSQL解决方案

2013年4月26日-27日,由51CTO传媒集团旗下WOT(World Of Tech)品牌主办的2013大数据全球技术峰会在北京富力万丽酒店召开。本次峰会将围绕大数据基础架构与上层应用的生态系统,解决大规模数据引发的问题,探索大数据基础的解决方案,激发数据挖掘带来的竞争力,让数据发出声音。51CTO作为本次峰会的主办方,将全程视频、图文直播报道这场数据的盛宴,更多内容请点击专题:2013大数据全球技术峰会。 ... 全文

大数据全球技术峰会

云数据库选择众多 企业怎么挑

开发者和应用设计者对于在云端部署数据库有众多选择,很难做出最佳的选择判断。将数据库服务器在IaaS云上运行好吗?或者应该转换成PaaS选择?数据库即服务的选择可能听起来很诱人,比如Cloudant的NoSQL但是怎么权衡? 为所有的选择列一个提纲有助于这项工作开始,但是不管选择了哪一种云数据库,都需要衡量多种因素,包括成本、可用性、可扩展性以及性能支持。 当前的代码可能很难对接到平台即服务(PaaS)数据库选择;甚至是关系型数据库都无法完全兼容,比如微软SQL Server和Windows Azure SQL数据库。比如SQL Server中,SQL数据库不支持自定义文本操作。 因此,如果当前的应用使用MySQL、Oracle、SQL Server、PostgreSQL或者其他常用的关系型数据库管理系统,构建在三层架构上,可以将数据库服务器转移到基础架构即服务(IaaS)云上。在这种选择下,可以保持配置和管理控制,但是也要持续承担备份、监控和按需扩展(或收缩)的责任。 相反,如果开始一项新的开发或者重新设计一个当前的数据库层,随后PaaS或者数据库即服务(DBaaS)可能会更好的适应需求。要尽早确定是使用SQL还是NoSQL架构。 SQL和NoSQL利弊分析 SQL和NoSQL都有优缺点,但是有些最为重要的因素则是你的团队开发每一种类型数据库的技能水平,以及每一种数据库类型怎样更好的适应你的需求。擅长技术类型的优势在于你的开发者不会被较长的学习曲线吓到。不要过分强调不需要的功能,即便市场上营销它比其他的数据库得到了更多的支持者。比如,分布式事务两阶段提交对于一些应用很重要,但是你真的需要吗? 基于SQL的关系型数据库平台可以选择PaaS,比如亚马逊关系型数据库服务(RDS)和Windows Azure SQL数据库。亚马逊RDS支持MySQL、Oracle和微软SQL Server数据库。在优化数据库性能时磁盘I/O是重点,因此在对接PaaS或者DBaaS数据库开发时,考虑一下存储的选择。 亚马逊Web服务(AWS)允许客户提供RDS实例,不管是标准的存储还是预分配的IOPS。后者对于事务处理应用是个不错的选择。如果你可以忍受I/O性能,标准存储可以节省AWS费用。客户可以按照1000—30000 IOPS的范围,每月价格为10美分/IOPS。 谷歌云SQL是一个基于云的MySQL实现,针对中小型应用。整合了谷歌App Engine,对于已经使用PaaS的开发者十分适用。不管是打包计划还是每个用例的计划付费都是可行的。 当成本和快速扩展成为问题所在,NoSQL选择可能更适合。NoSQL数据库并不具备我们构建面向事务的系统所依赖的所有性能,但是很适合Web和移动应用,这些应用要求快速扩展。AWS和微软都有NoSQL数据库服务。 亚马逊DynamoDB是一个托管的NoSQL数据库。客户对读写分配容量,基于此支付每小时的费用。AWS根据“读容量单元”和“写容量单元”衡量容量。 亚马逊SimpleDB是另一个NoSQL选择。其首要优势在于成本低。SimpleDB对于小型应用是个不错的选择,这种应用可以接受更低的性能。对于大量数据则需要分区和自动扩展,从而处理负载,DynamoDB可能更适合。 微软的NoSQL产品称之为Table Storage,类似亚马逊DynamoDB,是一种键值对数据存储。这些数据库都是支持大量数据的应用的有利候选,简化了数据类型的关系,可以不用修复预定义模式就获益。Table Storage的价格基于数据量和冗余水平。 除了IaaS厂商之外,比如微软、谷歌、亚马逊,你还可以选择特定的数据库服务,比如Cloudant的数据库即服务。Cloudant提供多租户和专用MongoDB数据库服务,价格起始于每月每GB1美分,加上额外的HTTP请求费用(如GET、PUT、POST和DELETE)。 ... 全文

云数据库 SQL NoSQL

搭建Replica Set复制集

  1、在MongoDB的同级安装目录下创建数据目录,目录结构如下:        /data/rs0        /data/rs1        /data/rs2   2、使用命令行启动mongod的三个实例,打开三个命令行窗口,分别输入命令如下:mongod --port 10000 --dbpath E:/field/replset/data/rs0 --replSet rscx --smallfiles --oplogSize 128mongod --port 10001 --dbpath E:/field/replset/data/rs1 --replSet rscx --smallfiles --oplogSize 128mongod --port 10002 --dbpath E:/field/replset/data/rs2 --replSet rscx --smallfiles --oplogSize 128      执行完上面的命令后,MongoDB的实例服务已经启动了,我们可以在刚刚创建数据目录下,看到MongoDB自动生成的一些数据配置文件。但同时我们也会发现命令行上会不停的打出“replSet can't get local.system.replset config from self or any seed”,这是因为集合loccal.system.replset还没有任何配置信息,我们还需要在命令行执行rs.initiate来进行初始化。    打开一个命令行窗口,我们连接到第一个实例。mongo --port 10000   在命令行继续输入mongodb replicate sets的配置信息,然后执行rs.initiate( rsconf )初始化配置信息。 rsconf = {           _id: "rs0",           members: [                      {                       _id: 0,                       host: "<hostname>:27017"                      }                    ]         }rs.initiate( rsconf )    在这一步,如果读者不小心,在执行rs.initialte方法时,忘记了加参数,可以通过rs.reconfig(rsconf)来重新初始化配置文件。      接下来,运行rs.conf()命令,我们能够看到会显示如下所示的复制集信息。rscx:PRIMARY> rs.conf(){        "_id" : "rscx",        "version" : 2,        "members" : [                {                        "_id" : 0,                        "host" : "favpc:10000"                }        ]}  接下来,继续运行下面的命令,将另外两个配置集加到复制集中。rs.add("favpc":10001)rs.add("favpc":10002)   至此,Replica Sets复制集就搭建成功了。我们也可以看到mongodb复制集的命令行窗口不再打印replSet can't get local.system.replset config from self or any seed“,取而代       之的是打印的复制集的连接信息。... 全文

MongoDB NoSQL Replication Sets Master-Slave

ArangoDB数据库入门

ArangoDB数据库入门作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs一、ArangoDB介绍ArangoDB是一个开源NoSQL数据库,官网:https://www.ArangoDB.org/ArangoDB支持灵活的数据模型,比如文档Document、图Graph以及键值对Key-Value存储。ArangoDB同时也是一个高性能的数据库,它使用类SQL查询或JavaScript扩展来构建高性能应用。ArangoDB值得称赞的一点,可以在树莓派上运行ArangoDB 1.4版。ArangoDB的特性:1)多模型数据库可以灵活的使用键值对、文档、图及其组合构建你的数据模型。... 全文

arangodb nosql 文档数据库 图数据库

关于一些NoSQL

对于一些大数据高负载,高并发的站点,做优化,会偏向与去做NoSQL。现在公司的项目使用到KT(即Kyoto Cabinet(DBM) + Kyoto Tycoon(网络层))这是一个非常厉害的NoSQL,存储和读取速度很快。使用NoSQL对数据处理、统计等不方便?我们会写一个进程,每一秒都在运行,只要NoSQL有更新就会同步更新到MySQL数据库,这样我们对一些统计,就直接在MySQL上面对数据处理。以下是别人总结的一些出色的NoSQL(本人只用过memcache、redis、kt)... 全文

数据库访问 解决方案 统计 网络 项目

eHarmony 与 MongoDB

Thod Nguyen, eHarmony 公司的CTO,向我们展示了这个世界最大的交友服务网站的用户体验的飞跃式提升。在使用了MongoDB的技术之后,与原有的关系型数据库相比,eHarmony的配对速度提高了95%,同时也使网站增加了进50%的订阅量。eHarmony现在的主要业务集中在北美、澳洲以及英国。自从公司2000年成立以来,公司一直保持良好的服务记录--------超过120万对配对成功的情侣最终步入婚姻的殿堂。到今天为止,eHarmony已经拥有55000000的注册用户。不久的将来,它们的业务即将扩展到另外的20个国家,相信这个数字很快又会出现快速的增长。... 全文

mongodb 数据库 nosql 企业应用 大数据

Redis源码分析(三十五)

       在Redis服务端的代码量真的是比较大,如果一个一个API的学习怎么实现,无疑是一种效率很低的做法,所以我今天对服务端的实现代码的学习,重在他的执行流程上,而对于他的模块设计在上一篇中我已经分析过了,不明白的同学可以接着看上篇。所以我学习分析redis服务端的实现也是主要从main函数开始。在分析main执行流程之前,Redis的作者在这里声明了几个变量,这个我们有必要知道一下。... 全文

nosql数据库 源码 内存数据库

Redis源码分析(二十三)

             今天开始研究Redis源码中的一些工具类的代码实现,工具类在任何语言中,实现的算法原理应该都是一样的,所以可以借此机会学习一下一些比较经典的算法。比如说我今天看的Crc循环冗余校验算法和rand随机数产生算法。            CRC算法全称循环冗余校验算法。CRC校验的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去。在接收端, 则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。16位的CRC码产生的规则是先将要发送的二进制序列数左移16位(既乘以 )后,再除以一个多项式,最后 所得到的余数既是CRC码。在Redis中实现的冗余校验算法为字节型算法;... 全文

nosql数据库 redis 算法 random

高性能nosql ledisdb设计与实现(1)

ledisdb是一个用go实现的基于leveldb的高性能nosql数据库,它提供多种数据结构的支持,网络交互协议参考redis,你可以很方便的将其作为redis的替代品,用来存储大于内存容量的数据(当然你的硬盘得足够大!)。同时ledisdb也提供了丰富的api,你可以在你的go项目中方便嵌入,作为你app的主要数据存储方案。... 全文

redis leveldb ledisdb go

《Mongodb权威指南》学习笔记 第二章 入门

文档是Mongodb中数据的基本单元,非常类似于关系数据库管理系统中的行(但是比行要复杂得多)。类似地,集合可以被看做是没有模式的表。Mongodb单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限。Mongodb自带简洁但功能强大的JavaScript Shell,这个工具对于管理Mongodb实例和操作数据作用非常大。每一个文档都有一个特殊的键“_id”,它在文档所处的集合中是唯一的。2.1 文档... 全文

nosql 关系数据库 mongodb

使用MongoDB开发实践体会

年前在项目中使用了NoSQL的代表之一 —— MongoDB,微博上总结了一些心得,在这里和各位分享一下。  开发中用MongoDB的爽快之处   MongoDB是一个非常适合PHP开发的#NoSQL# 数据库,尤其支持高并发和schema-free(自由结构)特性,使得PHP开发变得更灵活,更高效。大家都来试试吧!   或许很多时候,记录在mysql里面的自由字段(如序列化后的数组),都很难去回忆或者找到在什么地方。而mongodb却可以让你轻松找到需要的数组,而且很有规律(条件查询)。这种轻松,对比起来就知道了。   mysql在大数据量情况下,orderby和groupby的效率会非常的低。从目前的实践来看,mongodb是很有希望和很有必要替代orderby和groupby,因其有灵活的数据结构模型,可作为一个可查找和排序、归类的数据中间缓存层,而且效率会比通常的mysql查询高很多。  思考MongoDB的使用场景   重要数据:mysql,一般数据:mongodb,临时数据:memcache   对于关系数据表而言,mongodb是提供了一个更快速的视图view;而对于PHP程序而言,mongodb可以作为一个持久化的数组来使用,并且这个持久化的数组还可以支持排序、条件、限制等功能。   将mongodb代替mysql的部分功能,主要一个思考点就是:把mongodb当作mysql的一个view(视图),view是将表数据整合成业务数据的关键。比如说对原始数据进行报表,那么就要先把原始数据统计后生成view,在对view进行查询和报表。从这个意义上,mongodb提供了一个更快速,更使用的view  PHP中使用MongoDB要注意的   Mongodb等noSQL技术,作为memcache和mysql的一个中间view是比较好的选择。而noSQL进行持久化是非常不好的事情,除非有SSD硬盘,否则普通硬盘条件下,持久化会令系统负担极大,并且效率甚至有可能比mysql还要低。   在用 PHP 操作 MongoDB 时,排序字段值需要强制类型。不然排序的时候会有问题。 不强制类型时会 类似以下形式: 1 10 2 3 解决办法就是在写入的时候 加上 (int)$sort 强制一下类型。   MongoDB遇到“Caught exception: non-utf8 string: ”的异常,这是插入非UTF8编码文字的时候就会抛出  以上就是我在微博中总结的一些MongoDB使用的体会,你有什么看法呢?欢迎评论留言!... 全文

mongodb nosql mysql exception php 数据结构

搭建MongoDB主从复制(Master

  主从复制是MongoDB数据库一种特性,它通过数据备份来提高数据库的容灾能力。但是由于主从复制并不能自动实现故障转移的特性,MongoDB在1.6版本开发了新的复制模式:Replicate Sets。MongoDB建议不要再使用Master-Slave模式对数据进行备份。但是对于学习来说,我们仍可以了解一下MongoDB的主从复制模式。  1. 从MongoDB官网下载最新版的MongoDB,解压到某个目录。  2.在MongoDB文件夹下,创建/data/master和/data/slave目录。  3.启动主节点(Master)的服务器,运行下面的命令:mongod --dbpath /data/master --port 10000 --master   执行完上面的命令后,mongodb会在data/master下生成数据文件和日志文件。  4.启动从节点(Slave)的服务器,运行下面的命令:mongod --dbpath /data/slave --port 10001 --slave --source localhost:10000  执行完上面命令后,同样会在data/slave下生成数据文件和日志文件,并在local数据库下的sources表下创建与master的关联信息。... 全文

MongoDB Replication Sets NoSQL Master-Slave

Cassandra的五种用例

       虽然社区的大小是一个不太精确的问题,但是至少有3000家公司在生产过程中使用Cassandra。在过去的几个月里,我们深入了解了使用Cassandra的应用程序,并且提出了一个极富吸引力的模式,即超过80%的用例可以归为这五类应用程序。1. 产品目录/播放清单2. 推荐/个性化引擎3. 数据传感器/物联网4. 通信5. 欺诈检测         让我们先简要的看看每个用例,以及每个用例中的几个例子。... 全文

cassandra 数据库 nosql 大数据 物联网

【NoSQL】Mongodb高可用架构—Replica Set 集群实战

Replica Set使用的是n个mongod节点,构建具备自动的容错功能(auto-failover),自动恢复的(auto-recovery)的高可用方案。使用Replica Set来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作。对于Replica Set中的secondary 节点默认是不可读的。 架构图:分别在各服务器上运行两个mongod实例: ... 全文

分片 mongodb sharding

在线操作SequoiaDB集群缩减

我公司之前上线了一个新应用,底层数据库使用国内一家名叫SequoiaDB的NoSQL数据库作为存储。在原来的规划中,由6台PC服务器共同组成SequoiaDB集群,每台机器均部署了协调节点与CM集群管理节点。sdb1、sdb2和sdb3三台机器共同组成了编目节点组SYSCatalogGroup与数据节点组datagroup1。sdb4、sdb5和sdb6三台机器组成了另外一个数据节点组datagroup2。具体部署如下图示:... 全文

nosql数据库 服务器 数据库 集群 集群缩减

Redis源码分析(三十二)

         分析了将近1个月的Redis源代码了,也到了最核心的,最贴近系统开始的地方了,我把他取名为main目录,里面就包括了2个重要的文件,redis-cli和redis文件,1个代表的是客户端的执行文件,1个代表的是服务端的文件,这2个也是整个系统最最核心的模块,所以我把他归结到main主程序模块了,主程序模块也是我学习Redis最后的一个模块,在这里一定能看到我之前看到的所有各个功能模块的痕迹。由于主模块中的代码量比较多,所以我选择了分批次的学习,所以今天我主要的是把里面的API方法给拉了出来,把redis-cli中的东西,做了个解剖。       刚开始以为redis-cli.是redis-client的缩写,但其实他的意思:... 全文

nosql数据库 源码 redis 分布式计算

云计算与大数据的一些看法

1. 云计算与大数据的关系从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式计算架构。它的特色在于对海量数据的挖掘,但它必须依托云计算的分布式处理、分布式数据库、云存储和虚拟化技术。2. 云在技术层面的核心问题:  分布计算,集中存储。3. Hadoop,NoSQL,NewSQL的看法  优势:低成本,扩展方便,查询或分析计算效率高;        集群架构,高可用和负载均衡兼顾。   不足:数据实时性,数据一致性较弱;复杂关联查询支持不够。本文出自 “沉默的人” 博客,请务必保留此出处http://bjfmo.blog.51cto.com/280593/1559498... 全文

云计算 数据库 Hadoop NoSQL NewSQL

1 2 3 4 5 6 7 8