手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2012年08月23日的文章

mongodb 与 redis混用

本来一直在用redis,也没有觉得不爽,直到我需要对数据进行排序。。。进行条件查询。
一下子问题就来了。redis不支持这种条件查询。
于是。。我先hmGetAll,然后利用usort先排一下序,然后再利用数组的slice进行切分。这么一处理。。只有3000多条数据,0.2秒就这么浪费了。我晕啊。这怎么可以。。。这不科学啊。

于是,0.001949 一下子就刺瞎了我的钛金狗眼。
因为mongo的查询没有redis那样方便。于是在hashset的这一块,和list的这一块,我还是用redis方便,毕竟可以当成一个简单的链表处理,还是很方便的。。

对于有条件的查询,还是用mongoDB会更方便一点。测试了一下。原来只需要mongodb 512M内存就足够了,哥很大方,给了他1G,小样,你还不开心?

Tags: nosql, mongodb, redis

mongodb 的一些常规用法和疑问

mongoDB现在对于PHP来说已经用起来很方便了,pecl直接下载安装编译类库就OK了
先下载:https://github.com/mongodb/mongo-php-driver/tarball/master
然后tar zxvf master
进入目录 。。
$ phpize
$ ./configure
$ make install
看好文件存在哪里。就存在刚才解 开的目录下的modules目录里。有一个mongo.so,OK,拷到扩展目录,然后加一行配置:extension=mongo.so

重启apache。命令行下运行 php -i |grep mongo
黑黑,一下子可以看到几段信息了吧?

-------
安装mongodb,在ubuntu下来说实在是太容易了,比如:apt-get install mongodb一下子就完事了
不想一直运行?在测试的时候运行:mongod -journal -maxConns=2400 -rest
嗯,还提供rest风格的请求。。。

-----

PHP代码
  1. $a = $c->find(array('id'=>array('$gt'=>'10000'),'status'=>array('$ne'=>"1")));//->sort(array("pubdate"=>-1));  
  2. $result = iterator_to_array($a);  
  3. echo "<pre>";  
  4. print_r($result);  
  5. echo "</pre>";  

排序什么的都方便。。。只是在这里遇到点小问题
上面这段代码能够正常输出。只是我将status换成array('$in'=>array("0","9"))的时候,就一条数据也没有了。但明明是有的,比如 上面$ne = 1,即不等于1的情况(就是0和9),可以查询到数据。。。真纠结啊
明天再测试测试。