Archive for category 编程技术

CentOS 5.2 安装memcached

1.下载

wget http://www.monkey.org/%7Eprovos/libevent-1.3.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz

2.安装

tar zxvf libevent-1.3.tar.gz
cd libevent-1.3
./configure --prefix=/usr
make
make install

cd ../

tar zxvf memcached-1.2.8.tar.gz
cd memcached-1.2.8
./configure --with-libevent=/usr
make
make install

3.运行

/usr/local/bin/memcached -d -m 256 -u root -l 10.0.0.90 -p 12000 -c 256 -P /tmp/memcached.pid

选项说明:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是256MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址10.0.0.90,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid

发现报错“/usr/local/bin/memcached: error while loading shared libraries: libevent-1.3.so.1: cannot open shared object file: No such file or directory”
因为我装的是64位服务器,加上以下一句解决

ln -s /usr/lib/libevent-1.3.so.1.0.3 /usr/lib64/libevent-1.3.so.1

4.测试
php已经事先加好memcache支持

  1. <?php
  2. $memcache = new Memcache();
  3. $memcache->connect('10.0.0.90', 12000);
  4. $memcache->set('key', 'This is a memcache test!', 0, 60);
  5. $result = $memcache->get('key');
  6. unset($memcache);
  7. echo $result;
  8. ?>

运行该页面,如果出现“This is a memcache test!”表示成功!
5.加入开机启动

vim /etc/rc.local

最后加上

/usr/local/bin/memcached -d -m 1024 -u root -l 10.0.0.90 -p 12000 -c 256 -P /tmp/memcached.pid

, ,

No Comments

PHP输出GBK 1.0所有汉字

1995年GBK 1.0字库

为了配合 UNICODE 的实施,全国信息技术标准化技术委员会于1995年12月1日制订了《汉字内码扩展规范》(GBK),英文名称Chinese Internal Code Specification。国家技术监督局标准化司、电子工业部科技与质量监督司于1995年12月15日联合以技监标函[1995]229号文件的形式,将它确定为技术规范指导性文件,并予以发布和实施。这一版的GBK规范为1.0版。GB即“国标”,K是“扩展”的汉语拼音第一个字母。GBK向下与 GB2312编码兼容,向上支持ISO 10646.1国际标准,是前者向后者过渡过程中的一个承上启下的标准。
Read the rest of this entry »

1 Comment

Smarty模板中调用PHP函数

因为应用需要,要在Smarty中调用PHP函数,实现办法如下:
模板

  1. 数据条数:{$data|count}
  2. 活动页面文件后缀:{$page|substr:'-3'}
  3. 特殊情况:{$page|str_replace:'jpg':'png'}

对应php实现

  1. count($data);
  2. substr($page, -3);
  3. str_replace('jpg', 'png', $page);

,

No Comments

获取最小可插入值的SQL语句

工作中有一些应用,因为写操作频繁,如果使用自增长编号,那这个编号会暴涨,这时,使用非自增长编号的需求就凸显出来了,以下是得到这个编号的SQL:

  1. SELECT ( CASE WHEN EXISTS ( SELECT * FROM table b WHERE b.id =1) THEN MIN( id ) +1 ELSE 1 END ) AS id FROM table WHERE NOT id IN ( SELECT a.id -1 FROM table a)

本语句在Mysql 5.1.31上测试通过。

No Comments