主题用的是Lightword最新版,修改了一下css,让它显示中文更好,默认字体改为微软雅黑。
另博客里的垃圾评论太多了,以前一直不愿整理,后来才知道wp自带了一个非常棒的反垃圾评论插件Akismet,只是没启用而以,今天也把它打开了,500多个评论99%拉到了垃圾评论里面,确实不错!
之前wp的自动升功能一直不好使,同样也是今天才发现wp的文件所有者是root,用ftp的方式根本改不了wp的文件,chown了一下,就ok了.
另诚招独立博客友情链接!
主题用的是Lightword最新版,修改了一下css,让它显示中文更好,默认字体改为微软雅黑。
另博客里的垃圾评论太多了,以前一直不愿整理,后来才知道wp自带了一个非常棒的反垃圾评论插件Akismet,只是没启用而以,今天也把它打开了,500多个评论99%拉到了垃圾评论里面,确实不错!
之前wp的自动升功能一直不好使,同样也是今天才发现wp的文件所有者是root,用ftp的方式根本改不了wp的文件,chown了一下,就ok了.
另诚招独立博客友情链接!
主动发送信息实现过程:
机器人通过http去指定的url上去获取单条要给机器人发送的信息,为空的话,隔5秒后再取,不为空,取出并且机器人发送本条信息,同时下次取信息时,会把这条已发送的信息的ID通过POST传给http,通知web程序本条信息已成功发出!
程序写好,编译也通过了,但是公司上网要走公司的代理,所以qq机器人暂时还没有通过测试,先在博客里记录一下,回家后再测
目前机器人处开发阶段,设定了一个时间,机器人登陆后60秒左右后会自动下线!
需求:多台memcache共同工作,一台memcache服务器为主服务器A 其它的memcache服务器为B,C,D…
后台对memcache进行delete及set操作时,把操作命令存至redis或是其它媒介中,采用redis lists 做一简单的队阵方式保存操作的命令,也就是把A的日志记录压入队阵中
然后服务器跑一php的脚本,不停的循环从redis 中弹出A的命令日志,最后,把命令给B,C,D等从服务器执行,这样就达到了主从一至的要求。
目前只是简单的想法,准备找时间深入一下,弄一个主从备份的脚本,并且加上主从切换的功能。
http://code.google.com/p/redis/downloads/detail?name=redis-2.0.4.tar.gz
安装及启动方法非常的简单,目前非常稳定,性能强大挺适合部署在生产环境中使用
准备部署到joyjin网
安装方法
tar xvzf redis-2.0.4.tar.gz
cd redis-2.0.4
make
mkdir /home/redis
cp redis-server /home/redis
cp redis-benchmark /home/redis
cp redis-cli /home/redis
cp redis.conf /home/redis
cd /home/redis
启动
./redis-server redis.conf
进入命令交互模式
两种
1: ./redis-cli
2: telnet 127.0.0.1 6379 (ip接端口)
Connecting, Creating and using a DB, Create a Table / Collection
$link = new Mongo(); $link = mysql_connect($host, $user, $pass, 1) or die(“Could not connect to: {$host}.”);
$db = $link->testdb; $sql = “CREATE DATABASE `$db`”; mysql_select_db($db`,$link);
$col = $db->user; $sql = “CREATE TABLE ‘user’…; mysql_query($sql,$link);
$col->drop(); mysql_query(DROP TABLE `$db`.`$tbl`, $link);
$db->drop(); mysql_query(DROP DATABASE `$db`, $link);
$link->close(); mysql_close($link);
Insert Data
$doc= array(‘login’ => ‘jsmith’, ‘password’ => ‘ 5f4dcc3b5aa765d61d8327deb882cf99′, ’email’ => ‘jsmith@example.com’);
mysql_query(“INSERT INTO `$tbl` SET `login`=’jsmith’,`password`=’5f4dcc3b5aa765d61d8327deb882cf99′,`email`=’jsmith@example.com'”);
$id = $doc[‘_id’]; $id = mysql_insert_id($link);
Updating Data
$col->update(array(‘_id’ => $id), array(‘$set’ => array(‘password’ => ‘b497dd1a701a33026f7211533620780d’)));
$qry = mysql_query(“UPDATE `$tbl` SET `password` = ‘b497dd1a701a33026f7211533620780d’ WHERE `id` = {$id}”, $link);
Indexing data
$col->ensureIndex(array(“login” => 1), array(“unique” => true, “dropDups” => true));
$qry = mysql_query(“ALTER TABLE `$db`.`$tbl` ADD UNIQUE `login` (`login`)”, $link);
Querying Data
$res = $col->find(); SELECT * FROM `$tbl`
$doc = $col->findone(array(‘_id’ => $id)); SELECT * FROM `$tbl` WHERE `id` = {$id}
$res = $col->find()->limit(1); SELECT * FROM `$tbl` LIMIT 1
$res = $col->find()->skip(1)->limit(1); SELECT * FROM `$tbl` OFFSET 1 LIMIT 1;
$res = $col->find()->sort(array(‘login’ => -1)); SELECT * FROM `$tbl` ORDERBY `login` DESC //-1=DESC,1=ASC
$res = $col->find(array(‘age’ => array(‘$lt’ => 30))); SELECT * FROM `$tbl` WHERE `age` < 30 //$lt:<,$gt:>,$gte:>=, $lte:<=, $ne:!=
$doc = $col->find(array(’a’=>’hello’,’b’=>1)); SELECT * FROM `$tbl` WHERE `a` = ‘hello’ AND `b`=1
$doc = $col->find(array(’a’=>’hello’,’b’=>array(’$gt’=>1))); SELECT * FROM `$tbl` WHERE `a` = ‘hello’ AND `b`>=1
$res = $col->find(array(‘age’ => array(‘$gte’ => 20, ‘$lte’ => 50))); SELECT * FROM `$tbl` WHERE `age` >= 20 AND `age` <= 50
$col->remove(array(‘age’=>24),array(‘justOne’=>true,’safe’=>true)); DELETE FROM `$tbl` WHERE `login` = ‘psmith’
MongoCollection::insert(array $a,array $options) //$a要插入的数组, $options选项:safe是否返回结果信息,fsync是否直接插入到物理硬盘
db.linlin.find({id:10}) 返回linlin数据集ID=10的数据集
db.linlin.find({id:10}).count() 返回linlin数据集ID=10的数据总数
db.linlin.find({id:10}).limit(2) 返回linlin数据集ID=10的数据集从第二条开始的数据集
db.linlin.find({id:10}).skip(8) 返回linlin数据集ID=10的数据集从0到第八条的数据集
db.linlin.find({id:10}).limit(2).skip(8) 返回linlin数据集ID=1=的数据集从第二条到第八条的数据
db.linlin.find({id:10}).sort() 返回linlin数据集ID=10的排序数据集
db.linlin.findOne([query]) 返回符合条件的一条数据
db.linlin.getDB() 返回此数据集所属的数据库名称
db.linlin.getIndexes() 返回些数据集的索引信息
db.linlin.group({key:…,initial:…,reduce:…[,cond:…]})
db.linlin.mapReduce(mayFunction,reduceFunction,)
db.linlin.remove(query) 在数据集中删除一条数据
db.linlin.renameCollection(newName) 重命名些数据集名称
db.linlin.save(obj) 往数据集中插入一条数据
db.linlin.stats() 返回此数据集的状态
db.linlin.storageSize() 返回此数据集的存储大小
db.linlin.totalIndexSize() 返回此数据集的索引文件大小
db.linlin.totalSize() 返回些数据集的总大小
db.linlin.update(query,object[,upsert_bool]) 在此数据集中更新一条数据
db.linlin.validate() 验证此数据集