手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:mongo

cat 将内容写入文件

利用cat将内容写入文件其实很方便:

echo 10 | cat > /var/www/test.txt
两个函数一个管道,就这样完成了。
 
在这里我不多介绍cat的操作用法,毕竟很多时候用cat只是为了看一个文件 ,真要学了,网上有大把的资料
事实上,想这样调整的时候是因为我在做一个处理,即PHP的函数:msg_send和shm_*系列
 
1、用shm_*写程序。在命令行接收,动不动就挂掉。。。我人也崩溃了,太不稳定了
2、用msg_send和msg_receive发,用msg_queue_stat统计的时候,发现即使我的内容很短,也只能qmax为40,这时候我就在想是不是有其他原因,有人说可以调整/proc/sys/fs/mqueue/msg_max,因为来自proc,所以我想到了用cat写入。于是就有了本文
 
---EOF---
最后,由于msg_send其实他能够接受的最大字节数就是16384,所以,如果你的内容过大。比如我一条信息就是500字节,明显qmax最多只有32.而且最大字节还不能调整。。。或者说调整无效。。。
于是我现在msg_send发送的时候,其实message的内容是文件名。receive后,读取文件内容处理完毕后删除文件 。如果处理失败,扔到failed目录里
最后再有一个程序glob("/xxxx/*")进行按批处理。
 
蛋疼就是这样产生的

tree

看到标题不要以为是植树节,tree这个命令还是很爽的。
在windows下面,我们用tree命令可以将当前的目录结构打印出来方便工作交接和介绍项目,在linux下面。。。。默认没有这个tree命令。
因为我用ubuntu,所以直接apt-get install tree,就OK了。

用法很简单,如果你不愿意记参数,直接去要统计的目录下面执行一下,tree
然后就出来结构树了。最后还有一行:
952 directories, 4642 files

好吧,这是我的一个项目中的protected目录,嗯。主要是因为多了一个zend框架,如果没有它。我只有1000多个文件了。整个项目还不如一个框架。。。。

如果apt也回不来?这里有一篇文章可以参考一下:http://www.cnblogs.com/dekun_1986/archive/2011/09/04/2166146.html

我用busybox建的根文件系统,没有这个tree命令,可以下载此命令的源码,交叉编译一下,再放到根文件系统中的/bin目录中就好。

源码下载地址:ftp://mama.indstate.edu/linux/tree/

我是在arm平台下,所以把makefile 文件中的CC那行改为“CC=arm-linux-gcc”,再把生成的tree文件通过nfs弄到开发板的bin文件下就可以了

现在的最新版本是1.6.0,下载地址: 

 /Files/dekun_1986/tree-1.6.0.rar

---EOF---

上述的链接是在cnblogs的。如果你不放心,就去上面的ftp地址下载吧。

Tags: tree

PHP 飞信类

偷了个懒,代码扔在github上了。
用法也很简单:

    $fetion = new PHPFetion('用户名','密码');     $fetion->send('对方手机','信息');     会自动识别自己还是对方。(非好友不能发哦)

也实现了$fetion->multiSend,但我偷了个懒,直接循环用send发送了。
事实上,可以在刚登录的时候,利用group先将好友列表拉回来,然后就方便了。但觉得这样就复杂了。何必呢。。一般在用飞信的时候,也很少会用到群发功能吧。所以,我还是循环的send。黑黑

代码地址:https://github.com/neatstudio/yiiextension
欢迎围观

Tags: 飞信, fetion

推荐budgetVM的VPS

虽然都说buyvm便宜且稳定,其实我也很喜欢它,因为他有额外的storage存储来卖的,所以还是算比较靠谱的应用提供商,但我为什么要推荐budgetVM呢。并不是说他真的有多好,相反,我刚用一个月,就遇到了节点崩溃这样令人抓狂的事情。但是他们的服务也还行,所以我才推荐。
理由有2个吧。
1、配置高,价格低,这是其他VPS几乎没有的。
2、节点也算是有四个,虽然好象只有洛杉机的才会更快一点
但就第1个就够打死你了。2G内存的VPS,才16.99,linode在这点上就不如他,不过linode更胜在服务的多样性,比如对有限的硬盘还可以分区,而budgetVM就没有。
但是。。。便宜啊。我可以买一个Xen+一个openVZ用来做数据备份,也可以用来做负载均衡,多爽。一个坏了,还有一个。好吧,如果你觉得这样很痛苦我就没话说了。话说出来。人家一个Xen(1.5G)+一个openVZ(1G)的,才差不多和linode 512M的价格一致。
所以。。。
如果你要买 budgetVM,你可以点击:进入budgetVM
如果你要买 linode ,你可以尝试在年付的时候用这个推荐码,让我也可以有点小赚:f71609106c038d508a58c0a4222c8586fa5dd61b,如果你觉得记不住,你可以点击访问linode

其实,我还用过一个小型的VPS,价格上比buyvm贵了一点,不过,我运行了一年,几乎没有挂掉过。那就是:
myvirpus,我首页上的burst(俗称84),不是特别推荐,超售很严重,因为我的一个节点,三天两头自动关机,为此我的PR从5降到了现在。。后来我几乎每天都要条件反射的上去看看程序是不是还在运行。NND,也就是从那时候起,我换成了linode。

Tags: budgetvm, buyvm, linode

为列表提速

这是一段时间的我的经历和笔记,看过之前的博客的人应该会看到,我在用mongo,是的,我将大量的数据用mongo存储了,但最终我还是放弃了。理由有很多,不过我还是慢慢列出来吧
1、为什么用mongo
因为当初设计数据库的时候仓促,本来认为只有2~30万的数据,但最终却发现会有200多万条,以后可能还会更加多,所以当初很多大字段都扔在了一个表里,导致如果用in查询,非常慢。所以我想用mongo,扔到内存里查询,看看效果是否会很好。

2、为什么又放弃使用mongo了
说实话,mongo在做关系查询的方面确实挺不错,但存在的问题是我的数据都是用php往mongo里导入,而mongo对于数字和字符串还是认得比较严 的。当然这都不是问题。。问题是现在没有专门的DBA,以后对数据不太容易,也不太方便管理。毕竟目前公司的整体项目,大部分都是用mysql在做处理, 所以,为了配合更多人,才放弃使用mongo(当然,也是为了节约内存)

3、mongo在使用时的优缺点
其实mongo在仅做处理这些条件查询的时候,并没有想象中的那样。当然确实很快,不过在第一次查询的时候还是有点慢的,然后在数据没有变化的时候查询数 据都在0.00x秒,不过,我真的没有太在意(其实有点在意,但因为那个条件也是用mysql生成出来的,再加上查询之前对于那些字段都得做一次强制转 换,否则对于查询的时候可能就出不来数据)

4、最终我怎么做了
既然我已经知道我原来的数据表的问题在哪里,我就想办法处理掉不就完了?于是写了一个脚本,自己将主表的数据中的几个重要的,用来查询和排序的字段拎出来,重建一个表,用来查询,将可变字段改成定长字段,为了提速。这样一来,速度比原来最少快了两个等级。

5、下一步我会怎么做
其实现在做很多事情都是偷懒了,比如对于字段是int型的时候,却还是用的where id = '1',而不是where id = 1;
所以这是后期考虑优化的地方。
当然因为将主要字段分拆成表,所以带来的另一个问题是,当更改原表的时候,需要对新表做更新处理。

6、最后说一下
原表的索引,原来达到了300多M,后来因为把数据迁到新表(做冗余),在新的表建的索引,只有70多M,而且原表因为将索引清除了,编辑和插入的数据又上了一个等级,最终还是觉得这样有优势 。

---PS
不一定要学我,我这也是自己的经历,没有什么可比和可参照性。当然你要骂我那是可以的

Tags: mongo

Records:1012