Posts tagged with NoSql


上一篇《Elasticsearch与MongoDB 数据同步及分布式集群搭建 (一)》我们已经配置了一个Elasticsearch与MongoDB 数据同步高可用,可扩展以及分布式是ES的一个优势和特色,扩展垂直扩展或者向上扩展,Vertical Scale/Scaling Up,或是水平扩展或者向外扩展,Horizontal Scale/Scaling Out。 一个节点会运行一个ES的实例,一个集群则会包含拥有相同cluster.name的一个或者 多个节点,这些节点共同工作来完成数据共享和负载分担。随着节点被添加到集群,或者从集群中被删除,集群会通过自身调节来将数据均匀分布。集群中的一个节 点会被选为主节点(Master Node),它负责管理整个集群的变化,如创建或者删除一个索引(Index),向集群中添加或者删除节点。任何节点都可以成为主节点。在我们的例子中只…

Elasticsearch通过River可以与多种数据源Wikipedia, MongoDB, CouchDB, RabbitMQ, RSS, Sofa, JDBC, FileSystem,Dropbox等同步,公司的业务是用 MongoDB,今天测试环境虚拟机上配置了一下Elasticsearch 与 MongoDB的同步,作个大概的过程记录,主要利用richardwilly98 / elasticsearch-river-mongodb。 River通过读取mongodb的oplog来同步数据,oplog这个表来使集群中的不同机器数据同步的,可以保证es里面的数据和mongodb里面的是一样的,所以Mongdb必须是个集群才能拥有oplog.注意:该插件只支持集群环境下的mongodb,因为集群环境下的mongodb才有oplog这个 Elasticsearch 和 MongoDB需要安装对应的版本才能实现同步,我这里用了最新的Elasticsearch 1.4.2 和 MongoDB 3.0.…

公司的客服系统是用Yii开发的,权限系统是基于Yii CDbAuthManager开发的,随着权限项目的增加和权限组以及人员的增多,导致加入页面的时候打开很慢,因为没进入一个页面会去检查一下该用户对于该操作的权限。下面是用XHProf查看的结果部分截图,会发现CDbAuthManager::checkAccess 和CDbAuthManager::checkAccessRecursive等CDbAuthManager方法会调用很多次,而CDbAuthManage是基于数据库,所以每次调用还要去进行数据库的查询,这样难免会给性能带来瓶颈。(该图只要关注第一和第二列就可以了,其他列是优化过的结果且本机的测试数据库)。 利用Redis 加速 Yii CDbAuthManager 再来看下CDbAuthManager::checkAccessRecursive这个方法的实现,这个方法会去递归的查询数据库来验证用户的授权项目。 protected function checkAccessRecursive($itemName, $userId, $params, $assignments) { if (($item = $this->getAuthItem(…

$redis-cli KEYS 'message_new:*' | xargs redis-cli DEL 搞定! 转载请注明: 转载自Ryan是菜鸟 | LNMP技术栈笔记 如果觉得本篇文章对您十分有益,何不 打赏一下 本文链接地址: redis 批量删除 KEY…

Redis 的master 可以拥有多个 slave,多个 slave 可以连接同一个 master 外,还可以连接到其他 slave,主从复制在同步数据时,master 可以继续处理 client 请求不会阻塞 master,。 大体机制是这样:slave 与 master 建立连接,然后发送 sync 命令。无论是第一次连接还是重新连接,master 都会启动一个后台进程,将数据库快照保存到文件中,同时 master 主进程会开始收集新的写命令并缓存。后台进程完成写文件后,master 就发送文件给…

redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。目前国内新浪微博等一些都在用。 记录一下我的redis安装和配置过程,主要是redis在linux下的安装配置,phpredis的安装,以及Netbeans 中配置phpredis 的代码自动完成。 下载最新的稳定版本redis,解压编译安装: wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz tar zxvf redis-2.4.…

$inc 如果记录的该节点存在,让该节点的数值加N;如果该节点不存在,让该节点值等于N 设结构记录结构为 array(’a’=>1,’b’=>’t’),想让a加5,那么: $coll->update( array(’b'=>’t'), array(’$inc’=>array(’a'=>5)), ) $set 让某节点等于给定值 设结构记录结构为 array(’a’=>1,’b’=>’t’…

与mongoDB建立连接: 直接实例化mongo类+创建连接: $mo = new Mongo();//得到一个Mongo连接对象 实例化了一个Mongo类,并且与默认的localhost:27017端口的mongoDB建立连接。 如果想连接到其他的主机,可以这样写: $mongo = new Mongo("mongodb://username:password@192.168.1.22:12345"); 另外一种方式,实例化mongo类,再手动建立连接: $mongo = new Mongo("mongodb://username:password@192.168.1.…