分类目录归档:Nosql

redis主从复制和监控sentinel

http://www.redis.cn/topics/replication.html 或英文最新文档 http://www.redis.cn/topics/replication.html 记录一下sentinel 做监控状态,故障转移的日志。 3台机器分别启动redis: server1: 203.195.196.59(10.232.44.174) 6888 主 server2: 203.195.207.137(10.232.4.93) 6888 从 server3: 115.28.137.21(不在一个内网上) 6888 从 分别启动 redis-server –port 6888 redis-server –port 6888 –slaveof 203.195.196.59 6888 redis-server –port 6888 –slaveof 203.195.196.59 6888 redis-server /etc/sentinel.conf –sentinel 端口号分别未port 26000 26444 … 继续阅读

发表在 Nosql | 标签为 | 留下评论

redis五种数据类型

转载:(http://tech.it168.com/a2011/0818/1234/000001234478_all.shtml ) 1、String 常用命令: set,get,decr,incr,mget 等。 应用场景: String是最常用的一种数据类型,普通的key/value存储都可以归为此类,这里就不所做解释了。找一个一致性hash算法实现获取对象+redis此类型 可替代 用 memcache 做缓存。 实现方式: String在redis内部存储默认就是一个字符串,被redisObject所引用,当遇到incr,decr等操作时会转成数值型进行计算,此时redisObject的encoding字段为int。 2、Hash 常用命令: hget,hset,hgetall 等。 应用场景: 我们简单举个实例来描述下Hash的应用场景,比如我们要存储一个用户信息对象数据,包含以下信息: 用户ID,为查找的key, 存储的value用户对象包含姓名name,年龄age,生日birthday 等信息, 如果用普通的key/value结构来存储,主要有以下2种存储方式: 第一种方式将用户ID作为查找key,把其他信息封装成一个对象以序列化的方式存储, 如:set u001 “李三,18,20010101″ 这种方式的缺点是,增加了序列化/反序列化的开销,并且在需要修改其中一项信息时,需要把整个对象取回,并且修改操作需要对并发进行保护,引入CAS等复杂问题。 第二种方法是这个用户信息对象有多少成员就存成多少个key-value对儿,用用户ID+对应属性的名称作为唯一标识来取得对应属性的值, 如:mset user:001:name “李三 “user:001:age18user:001:birthday “20010101″ 虽然省去了序列化开销和并发问题,但是用户ID为重复存储,如果存在大量这样的数据,内存浪费还是非常可观的。 那么Redis提供的Hash很好的解决了这个问题,Redis的Hash实际是内部存储的Value为一个HashMap,并提供了直接存取这个Map成员的接口, 如:hmset user:001 name “李三” age 18 … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb聚合函数

官方介绍聚合函数: http://docs.mongodb.org/manual/core/aggregation-introduction/ 1、count db.test.count(); 2、distinct db.runCommand(“distinct”: “table”, “key”: “age”); 3、group  最多只能处理上万个key xxx = { ns:”test_table”, key:{id:true}, initial:{num:0}, $reduce:function(doc,prev) { prev.num++ }, condition:{id:{$gt:1}} } 还可以增加 finalize 属性指定一个函数。对每组结果进行处理。。。。 db.test_table.group(xxx); 返回结果集 db.runCommand({group:xxx}); 返回结构: retVal 结果集 count 总记录数 keys 分组后的key数 ok 完成状态 4.mapReduce 不错的例子: … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb复制集+分片

复制集相当于集群配置,分片相当于对分表。因为需要的端口太多,方便观察在2个机器操作。也可以在一个机器的不同位置放多份mongodb的文件夹。 复制是2个机器之间的(也可以同机器不同端口),分片是同一个机器上的数据表分片。那复制就是要配置好各机器上对应的分片的复制,保证数据同步。 一、启动mongod进程 win ip:192.168.2.106 d:\MongoDB\bin\mongod.exe –shardsvr –replSet shard1 –port 27016 –dbpath “d:\MongoDB\data\shardReplSet\shard1_win” d:\MongoDB\bin\mongod.exe –shardsvr –replSet shard2 –port 27018 –dbpath “d:\MongoDB\data\shardReplSet\shard2_win” mac ip:192.168.2.107 /work/mongo/bin/mongod –shardsvr –replSet shard1 –port 27016 –dbpath /work/mongo/data/shardReplSet/shard1_mac /work/mongo/bin/mongod –shardsvr –replSet shard2 –port 27018 –dbpath /work/mongo/data/shardReplSet/shard2_mac 复制集的配置还没做,2台机器分别的2个窗口都会输出 … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb分片

此例子讲某个文档的分片存在同机器同磁盘的不同的目录下。 一、先建立sharding 再写数据 看分片效果 Shard Server 1:20000 Shard Server 2:20001 mongod.exe –shardsvr –port 20000 –dbpath d:\mongodb\data\shard\s0 –directoryperdb mongod.exe –shardsvr –port 20001 –dbpath d:\mongodb\data\shard\s1 –directoryperdb Config Server :30000 mongod.exe –configsvr –port 30000 –dbpath d:\mongodb\data\shard\config –directoryperdb 保证健壮性可开启多个 mongod.exe –configsvr –port 30001 –dbpath … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb主从配置和集群配置

一、主从配置: mongod.exe 参数 –rest 开启网页查询接口。可以让网页如 localhost:28017 查看某些信息。 windows 192.168.2.106 执行: mongod.exe –master –dbpath “d:\MongoDB\data\db”   mac os 192.168.2.107 执行:(掉坑里了填了2.107纠结了半天,失败会一直过2秒就重连一次。不设置logpath参直接输出信息方便调试) /work/mongo/bin/mongod –slave –source 192.168.2.106:27017 –dbpath /work/mongo/data/db   相关配置信息会保存到 local数据库的 source 集合下 相关命令 db.isMaster() db.$cmd.findOne({ismaster:1}); db.printReplicationInfo() db.printSlaveReplicationInfo()   在windows写入数据 在mac验证就ok   二、复制集 … 继续阅读

发表在 Nosql | 标签为 , | 留下评论

mongodb访问验证、数据导入导出、备份、恢复

限制访问 mongod –bind_ip 192.168.1.103 只允许此ip连接 mongod –bind_ip 192.168.1.103 –port 28018 只允许客户端用此ip此端口号连接 启动验证 mongod –auth 1、建立系统 root 用户 db.addUser(“root”,”111″) 2、建立指定权限用户 第三个参数只读 db.addUser(“user_reader”, “user_pwd”, true) db.system.users.find()可查看存在的用户 连接时 mongo -u root -p 111 导出数据库 ./mongoexport -d mydb -c table –csv -f uid,username,age -o  … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb游标和存储过程

mongodb 在php手册中有相关内容: http://www.php.net/manual/zh/book.mongo.php 核心类 MongoClient — MongoClient 类 (老的api 就是 mongo 类) MongoDB — MongoDB 类 (数据库对象) MongoCollection — The MongoCollection class (表(文档)对象) MongoCursor — The MongoCursor class (find 后的结果对象)   一、游标curso: for( var c = db.t3.find(); c.hasNext(); ) { … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb基本查询

db.foo.find(xxx)  xxx 为 {‘x’:’y’} 形式。本文主要整理此形式。 5.1 条件操作符 <, <=, >, >= 这个操作符就不用多解释了,最常用也是最简单的 db.collection.find({ “field” : { $gt: value } } ); // 大于: field > value db.collection.find({ “field” : { $lt: value } } ); // 小于: field < value … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb安装

抄袭自 mongodb权威指南。 一、 Windows 平台的安装 步骤一: 下载 MongoDB url 下载地址: http://downloads.mongodb.org/win32/mongodb-win32-i386-1.8.1.zip 步骤二: 设置 MongoDB 程序存放目录 将其解压到 c:\,再重命名为 mongo,路径为 c:\mongo 步骤三: 设置数据文件存放目录 在 c:盘建一个 db 文件夹,路径 c:\db 步骤四: 启动 MongoDB 服务 进入 cmd 提示符控制台,c:\mongo\bin\mongod.exe –dbpath=c:\db C:\mongo\bin>C:\mongo\bin\mongod –dbpath=c:\db Sun Apr 10 22:34:09 … 继续阅读

发表在 Nosql | 标签为 | 留下评论