memcached参数中文解释

最近在研究memcached的优化,顺便把man memcached文档翻译了,只翻译参数部分。

memcached 1.4.2
-p <num>      监听的TCP端口(默认: 11211)
-U <num>      监听的UDP端口(默认: 11211, 0表示不监听)
-s <file>     用于监听的UNIX套接字路径(禁用网络支持)
-a <mask>     UNIX套接字访问掩码,八进制数字(默认:0700)
-l <ip_addr>  监听的IP地址。(默认:INADDR_ANY,所有地址)
-d            作为守护进程来运行。
-r            最大核心文件限制。
-u <username> 设定进程所属用户。(只有root用户可以使用这个参数)
-m <num>      单个数据项的最大可用内存,以MB为单位。(默认:64MB)
-M            内存用光时报错。(不会删除数据)
-c <num>      最大并发连接数。(默认:1024)
-k            锁定所有内存页。注意你可以锁定的内存上限。
              试图分配更多内存会失败的,所以留意启动守护进程时所用的用户可分配的内存上限。
              (不是前面的 -u <username> 参数;在sh下,使用命令"ulimit -S -l NUM_KB"来设置。)
-v            提示信息(在事件循环中打印错误/警告信息。)
-vv           详细信息(还打印客户端命令/响应)
-vvv          超详细信息(还打印内部状态的变化)
-h            打印这个帮助信息并退出。
-i            打印memcached和libevent的许可。
-P <file>     保存进程ID到指定文件,只有在使用 -d 选项的时候才有意义。
-f <factor>   块大小增长因子。(默认:1.25)
-n <bytes>    分配给key+value+flags的最小空间(默认:48)
-L            尝试使用大内存页(如果可用的话)。提高内存页尺寸可以减少"页表缓冲(TLB)"丢失次数,提高运行效率。
              为了从操作系统获得大内存页,memcached会把全部数据项分配到一个大区块。
-D <char>     使用 <char> 作为前缀和ID的分隔符。
              这个用于按前缀获得状态报告。默认是":"(冒号)。
              如果指定了这个参数,则状态收集会自动开启;如果没指定,则需要用命令"stats detail on"来开启。
-t <num>      使用的线程数(默认:4)
-R            每个连接可处理的最大请求数。
-C            禁用CAS。
-b            设置后台日志队列的长度(默认:1024)
-B            绑定协议 - 可能值:ascii,binary,auto(默认)
-I            重写每个数据页尺寸。调整数据项最大尺寸。

php使用memcache例子

<?php
$db_host = "localhost";
$db_name = 'news';
$db_user = "comet";
$db_password = "12345678";

// set pdo name
$dsn = "mysql:host=$db_host;dbname=$db_name";
//连接
$mem = new Memcache();
$mem->connect('127.0.0.1', 11211);

$sql = "SELECT newsID,newssn,newsinfo FROM news";
$key=md5($sql);

if(!$mem->get($key))
{
$db = new PDO($dsn, $db_user ,$db_password);
$db->query("set character set 'utf8'");
$sth = $db->prepare($sql);
$sth->execute();
$result = $sth->fetchAll();
$f = 'mysql';
$mem->add($key,serialize($result),0,0); //mysql 查询后,插入 memcache
$data = $result;
}
else{
$f = 'memcache';
$data_mem=$mem->get($key);
$data = unserialize($data_mem);
}

echo $f;
echo "<br>";
print_r($data);

 

// //保存数据
// $mem->set('key1', 'This is a value', 0, 60);
// $val .= $mem->get('key1');
// echo "Get key1 value: " . $val ."<br />";

// //替换数据
// $mem->replace('key1', 'This is replace value', 0, 60);
// $val = $mem->get('key1');
// echo "Get key1 value: " . $val . "<br />";

// //保存数组
// $arr = array('aaa', 'bbb', 'ccc', 'ddd');
// $mem->set('key2', $arr, 0, 60);
// $val2 = $mem->get('key2');
// echo "Get key2 value: ";
// print_r($val2);
// echo "<br />";

// //删除数据
// $mem->delete('key1');
// $val = $mem->get('key1');
// echo "Get key1 value: " . $val . "<br />";

// //清除所有数据
// $mem->flush();
// $val2 = $mem->get('key2');
// echo "Get key2 value: ";
// print_r($val2);
// echo "<br />";

//关闭连接
$mem->close();

为wamp server加装memcached

1. 下载memcache的windows版本
这里有两个都能正常使用。不过下载csdn的版本要1个资源分。
1.2.6:http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip
1.4.5:http://download.csdn.net/download/flxyzsby/3941243

2. 命令行下执行安装并开启进程
解压后把程序放在D:\wamp\bin\memcached.exe目录下
运行下面的命令进行安装和启动:
D:\wamp\bin\memcached.exe -d install
D:\wamp\bin\memcached.exe -d start

3. 查看phpinfo()
看看php是哪个版本的、php.ini路径在哪里。这里是:
PHP Extension Build:API20090626,TS,VC9
Loaded Configuration File :D:\wamp\bin\apache\apache2.2.22\bin\php.ini

4.下载memcache.dll
下载与php对应版本的memcache.dll,php的版本为TS,VC9,那么memcache的版本也要是TS,VC9的。
在 http://downloads.php.net/pierre/ 这里找到 php_memcache-2.2.6-5.3-vc9-x86.zip
解压后把php_memcache.dll,放在D:\wamp\bin\php\php5.3.13\ext\

5.修改php.ini
这里的php.ini是根据上面查看到的,或者直接在wamp菜单中php的php.ini修改
这里在D:\wamp\bin\apache\apache2.2.22\bin\php.ini,增加:

extension=php_memcache.dll

[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts= 20
memcache.chunk_size = 8192
memcache.default_port = 11211

6.重启apache
使得memcache扩展生效,可以在phpinfo()中看到有memcache就表示安装成功。