<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>waimv.com &#187; Memcache</title>
	<atom:link href="http://www.waimv.com/tag/memcache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.waimv.com</link>
	<description></description>
	<lastBuildDate>Fri, 09 Nov 2018 10:41:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>linux memcache安装于配置</title>
		<link>http://www.waimv.com/linux/82/</link>
		<comments>http://www.waimv.com/linux/82/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 04:00:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Memcache]]></category>

		<guid isPermaLink="false">http://www.szpian.com/?p=82</guid>
		<description><![CDATA[linux下Memcache服务器端的安装 服务器端主要是安装memcache服务器端，目前的最新版本是 memcached-1.3.0 。 下载： http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz http://pecl.php.net/get/memcache-1.2.tgz 另外，Memcache用到了libevent这个库用于Socket的处理，所以还需要安装libevent，libevent的最新版本是libevent-1.3。（如果你的系统已经安装了libevent，可以不用安装） 官网：http://www.monkey.org/~provos/libevent/ 下载：http://www.monkey.org/~provos/libevent-1.4.11-stable.tar.gz 用wget指令直接下载这两个东西.下载回源文件后。 1.先安装libevent。这个东西在配置时需要指定一个安装路径，即./configure –prefix=/usr；然后make；然后make install； 2.再安装memcached，只是需要在配置时需要指定libevent的安装路径即./configure –with-libevent=/usr；然后make；然后make install； 这样就完成了Linux下Memcache服务器端的安装。详细的方法如下： 1.分别把memcached和libevent下载回来，放到 /tmp 目录下： # cd /tmp # wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz # wget http://www.monkey.org/~provos/libevent-1.2.tar.gz 2.先安装libevent： # ./configure –prefix=/usr # make # make install 还不错，都安装上了。 3.安装memcached，同时需要安装中指定libevent的安装位置： # ./configure –with-libevent=/usr # make # make install 如果中间出现报错，请仔细检查错误信息，按照错误信息来配置或者增加相应的库或者路径。 安装完成后会把memcached放到 /usr/local/bin/memcached ， 4.测试是否成功安装memcached： # [...]]]></description>
			<content:encoded><![CDATA[<p>linux下Memcache服务器端的安装<br />
服务器端主要是安装memcache服务器端，目前的最新版本是 memcached-1.3.0 。<br />
下载：</p>
<p>http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz</p>
<p>http://pecl.php.net/get/memcache-1.2.tgz</p>
<p>另外，Memcache用到了libevent这个库用于Socket的处理，所以还需要安装libevent，libevent的最新版本是libevent-1.3。（如果你的系统已经安装了libevent，可以不用安装）<br />
官网：http://www.monkey.org/~provos/libevent/<br />
下载：http://www.monkey.org/~provos/libevent-1.4.11-stable.tar.gz</p>
<p>用wget指令直接下载这两个东西.下载回源文件后。<br />
1.先安装libevent。这个东西在配置时需要指定一个安装路径，即./configure –prefix=/usr；然后make；然后make install；<br />
2.再安装memcached，只是需要在配置时需要指定libevent的安装路径即./configure –with-libevent=/usr；然后make；然后make install；<br />
这样就完成了Linux下Memcache服务器端的安装。详细的方法如下：</p>
<p>1.分别把memcached和libevent下载回来，放到 /tmp 目录下：<br />
# cd /tmp<br />
# wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz<br />
# wget http://www.monkey.org/~provos/libevent-1.2.tar.gz</p>
<p>2.先安装libevent：<br />
# ./configure –prefix=/usr<br />
# make<br />
# make install</p>
<p>还不错，都安装上了。</p>
<p>3.安装memcached，同时需要安装中指定libevent的安装位置：</p>
<p># ./configure –with-libevent=/usr<br />
# make<br />
# make install<br />
如果中间出现报错，请仔细检查错误信息，按照错误信息来配置或者增加相应的库或者路径。<br />
安装完成后会把memcached放到 /usr/local/bin/memcached ，</p>
<p>4.测试是否成功安装memcached：<br />
# ls -al /usr/local/bin/mem*<br />
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached<br />
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug</p>
<p>安装Memcache的PHP扩展<br />
1.在http://pecl.php.net/package/memcache 选择相应想要下载的memcache版本。<br />
2.安装PHP的memcache扩展</p>
<p>tar vxzf memcache-2.2.1.tgz<br />
cd memcache-2.2.1<br />
/usr/local/php/bin/phpize<br />
./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir<br />
make<br />
make install</p>
<p>3.上述安装完后会有类似这样的提示：</p>
<p>Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/</p>
<p>4.把php.ini中的extension_dir = “./”修改为</p>
<p>extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/”</p>
<p>5.添加一行来载入memcache扩展：extension=memcache.so</p>
<p>memcached的基本设置：<br />
1.启动Memcache的服务器端：<br />
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid</p>
<p>-d选项是启动一个守护进程，<br />
-m是分配给Memcache使用的内存数量，单位是MB，我这里是10MB，<br />
-u是运行Memcache的用户，我这里是root，<br />
-l是监听的服务器IP地址，如果有多个地址的话，我这里指定了服务器的IP地址192.168.0.200，<br />
-p是设置Memcache监听的端口，我这里设置了12000，最好是1024以上的端口，<br />
-c选项是最大运行的并发连接数，默认是1024，我这里设置了256，按照你服务器的负载量来设定，<br />
-P是设置保存Memcache的pid文件，我这里是保存在 /tmp/memcached.pid，</p>
<p>2.如果要结束Memcache进程，执行：</p>
<p># kill `cat /tmp/memcached.pid`</p>
<p>也可以启动多个守护进程，不过端口不能重复。</p>
<p>3.重启apache，service httpd restart</p>
<p>Memcache环境测试：<br />
运行下面的php文件，如果有输出This is a test!，就表示环境搭建成功。开始领略Memcache的魅力把！<br />
< ?php<br />
$mem = new Memcache;<br />
$mem->connect(”127.0.0.1″, 11211);<br />
$mem->set(’key’, ‘This is a test!’, 0, 60);<br />
$val = $mem->get(’key’);<br />
echo $val;<br />
?></p>
]]></content:encoded>
			<wfw:commentRss>http://www.waimv.com/linux/82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>memcached telnet操作</title>
		<link>http://www.waimv.com/linux/34/</link>
		<comments>http://www.waimv.com/linux/34/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 08:18:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Memcache]]></category>

		<guid isPermaLink="false">http://www.szpian.com/?p=34</guid>
		<description><![CDATA[telnet localhost 11211 //保存 set good 32 0 10 helloworld STORED //取回 gets good VALUE good 32 10 10 helloworld END //替换 replace good 32 0 10 worldhello STORED get good VALUE good 32 10 worldhello END //尾部添加 append good 32 0 5 after STORED get good VALUE good 32 15 worldhelloafter END //头部添加 prepend [...]]]></description>
			<content:encoded><![CDATA[<p>telnet localhost 11211<br />
//保存<br />
set good 32 0 10<br />
helloworld<br />
STORED</p>
<p>//取回<br />
gets good<br />
VALUE good 32 10 10<br />
helloworld<br />
END</p>
<p>//替换<br />
replace good 32 0 10<br />
worldhello<br />
STORED<br />
get good<br />
VALUE good 32 10<br />
worldhello<br />
END</p>
<p>//尾部添加<br />
append good 32 0 5<br />
after<br />
STORED<br />
get good<br />
VALUE good 32 15<br />
worldhelloafter<br />
END</p>
<p>//头部添加<br />
prepend good 32 0 6<br />
before<br />
STORED<br />
get good<br />
VALUE good 32 21<br />
beforeworldhelloafter<br />
END</p>
<p>//删除<br />
delete good<br />
DELETED<br />
get good<br />
END</p>
<p>delete good<br />
NOT_FOUND</p>
<p>cas good 32 0 10 hel<br />
helloworld<br />
EXISTS</p>
<p>gets good<br />
VALUE good 32 10 10<br />
helloworld<br />
END</p>
<p>cas bad 32 0 10 good<br />
worldhello<br />
NOT_FOUND</p>
<p>//统计<br />
stats items<br />
STAT items:1:number 1<br />
STAT items:1:age 24<br />
STAT items:1:evicted 0<br />
STAT items:1:outofmemory 0<br />
END</p>
<p>stats sizes<br />
96 1<br />
END</p>
<p>stats slabs<br />
STAT 1:chunk_size 88<br />
STAT 1:chunks_per_page 11915<br />
STAT 1:total_pages 1<br />
STAT 1:total_chunks 11915<br />
STAT 1:used_chunks 11914<br />
STAT 1:free_chunks 1<br />
STAT 1:free_chunks_end 11913<br />
STAT 2:chunk_size 112<br />
STAT 2:chunks_per_page 9362<br />
STAT 2:total_pages 1<br />
STAT 2:total_chunks 9362<br />
STAT 2:used_chunks 9361<br />
STAT 2:free_chunks 1<br />
STAT 2:free_chunks_end 9361<br />
STAT 5:chunk_size 232<br />
STAT 5:chunks_per_page 4519<br />
STAT 5:total_pages 1<br />
STAT 5:total_chunks 4519<br />
STAT 5:used_chunks 4518<br />
STAT 5:free_chunks 1<br />
STAT 5:free_chunks_end 4518<br />
STAT active_slabs 3<br />
STAT total_malloced 3145472<br />
END</p>
<p>stats items<br />
STAT items:1:number 1<br />
STAT items:1:age 1768<br />
STAT items:1:evicted 0<br />
STAT items:1:outofmemory 0<br />
END</p>
<p>stats<br />
STAT pid 18261<br />
STAT uptime 528593<br />
STAT time 1237277383<br />
STAT version 1.2.6<br />
STAT pointer_size 32<br />
STAT rusage_user 0.004999<br />
STAT rusage_system 0.015997<br />
STAT curr_items 1<br />
STAT total_items 2<br />
STAT bytes 66<br />
STAT curr_connections 2<br />
STAT total_connections 13<br />
STAT connection_structures 3<br />
STAT cmd_get 11<br />
STAT cmd_set 8<br />
STAT get_hits 2<br />
STAT get_misses 9<br />
STAT evictions 0<br />
STAT bytes_read 1342<br />
STAT bytes_written 8752<br />
STAT limit_maxbytes 134217728<br />
STAT threads 1<br />
END</p>
<p>使用usr/bin/perl /root/memcached-1.2.6/scripts/memcached-tool localhost:11211<br />
output<br />
# Item_Size   Max_age 1MB_pages Count   Full?<br />
1      88 B     1531 s       1       1      no<br />
2     112 B        0 s       1       0      no<br />
5     232 B        0 s       1       0      no</p>
<p># slab class编号<br />
Item_Size Chunk大小<br />
Max_age LRU内最旧的记录的生存时间<br />
1MB_pages 分配给Slab的页数<br />
Count Slab内的记录数<br />
Full? Slab内是否含有空闲chunktelnet localhost 11211<br />
//保存<br />
set good 32 0 10<br />
helloworld<br />
STORED</p>
<p>//取回<br />
gets good<br />
VALUE good 32 10 10<br />
helloworld<br />
END</p>
<p>//替换<br />
replace good 32 0 10<br />
worldhello<br />
STORED<br />
get good<br />
VALUE good 32 10<br />
worldhello<br />
END</p>
<p>//尾部添加<br />
append good 32 0 5<br />
after<br />
STORED<br />
get good<br />
VALUE good 32 15<br />
worldhelloafter<br />
END</p>
<p>//头部添加<br />
prepend good 32 0 6<br />
before<br />
STORED<br />
get good<br />
VALUE good 32 21<br />
beforeworldhelloafter<br />
END</p>
<p>//删除<br />
delete good<br />
DELETED<br />
get good<br />
END</p>
<p>delete good<br />
NOT_FOUND</p>
<p>cas good 32 0 10 hel<br />
helloworld<br />
EXISTS</p>
<p>gets good<br />
VALUE good 32 10 10<br />
helloworld<br />
END</p>
<p>cas bad 32 0 10 good<br />
worldhello<br />
NOT_FOUND</p>
<p>//统计<br />
stats items<br />
STAT items:1:number 1<br />
STAT items:1:age 24<br />
STAT items:1:evicted 0<br />
STAT items:1:outofmemory 0<br />
END</p>
<p>stats sizes<br />
96 1<br />
END</p>
<p>stats slabs<br />
STAT 1:chunk_size 88<br />
STAT 1:chunks_per_page 11915<br />
STAT 1:total_pages 1<br />
STAT 1:total_chunks 11915<br />
STAT 1:used_chunks 11914<br />
STAT 1:free_chunks 1<br />
STAT 1:free_chunks_end 11913<br />
STAT 2:chunk_size 112<br />
STAT 2:chunks_per_page 9362<br />
STAT 2:total_pages 1<br />
STAT 2:total_chunks 9362<br />
STAT 2:used_chunks 9361<br />
STAT 2:free_chunks 1<br />
STAT 2:free_chunks_end 9361<br />
STAT 5:chunk_size 232<br />
STAT 5:chunks_per_page 4519<br />
STAT 5:total_pages 1<br />
STAT 5:total_chunks 4519<br />
STAT 5:used_chunks 4518<br />
STAT 5:free_chunks 1<br />
STAT 5:free_chunks_end 4518<br />
STAT active_slabs 3<br />
STAT total_malloced 3145472<br />
END</p>
<p>stats items<br />
STAT items:1:number 1<br />
STAT items:1:age 1768<br />
STAT items:1:evicted 0<br />
STAT items:1:outofmemory 0<br />
END</p>
<p>stats<br />
STAT pid 18261<br />
STAT uptime 528593<br />
STAT time 1237277383<br />
STAT version 1.2.6<br />
STAT pointer_size 32<br />
STAT rusage_user 0.004999<br />
STAT rusage_system 0.015997<br />
STAT curr_items 1<br />
STAT total_items 2<br />
STAT bytes 66<br />
STAT curr_connections 2<br />
STAT total_connections 13<br />
STAT connection_structures 3<br />
STAT cmd_get 11<br />
STAT cmd_set 8<br />
STAT get_hits 2<br />
STAT get_misses 9<br />
STAT evictions 0<br />
STAT bytes_read 1342<br />
STAT bytes_written 8752<br />
STAT limit_maxbytes 134217728<br />
STAT threads 1<br />
END</p>
<p>使用usr/bin/perl /root/memcached-1.2.6/scripts/memcached-tool localhost:11211<br />
output<br />
# Item_Size   Max_age 1MB_pages Count   Full?<br />
1      88 B     1531 s       1       1      no<br />
2     112 B        0 s       1       0      no<br />
5     232 B        0 s       1       0      no</p>
<p># slab class编号<br />
Item_Size Chunk大小<br />
Max_age LRU内最旧的记录的生存时间<br />
1MB_pages 分配给Slab的页数<br />
Count Slab内的记录数<br />
Full? Slab内是否含有空闲chunk</p>
]]></content:encoded>
			<wfw:commentRss>http://www.waimv.com/linux/34/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>web服务器高连接参数配置</title>
		<link>http://www.waimv.com/linux/26/</link>
		<comments>http://www.waimv.com/linux/26/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 08:10:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Memcache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://www.szpian.com/?p=26</guid>
		<description><![CDATA[Linux下高并发的Squid,Nginx,Memcache服务器，TCP TIME_WAIT套接字数量经常达到两、三万，服务器很容易被拖死。通过修改Linux内核参数，可以减少Squid服务器的TIME_WAIT套接字数量。 　　 vi /etc/sysctl.conf 　　增加以下几行： 引用 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000 　　说明： 　　net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时，启用cookies来处理，可防范少量SYN攻击，默认为0，表示关闭； 　　net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接，默认为0，表示关闭； 　　net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收，默认为0，表示关闭。 　　net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭，这个参数决定了它保持在FIN-WAIT-2状态的时间。 　　net.ipv4.tcp_keepalive_time = 1200 [...]]]></description>
			<content:encoded><![CDATA[<p>Linux下高并发的Squid,Nginx,Memcache服务器，TCP TIME_WAIT套接字数量经常达到两、三万，服务器很容易被拖死。通过修改Linux内核参数，可以减少Squid服务器的TIME_WAIT套接字数量。<br />
　　<br />
vi /etc/sysctl.conf</p>
<p>　　增加以下几行：<br />
引用<br />
net.ipv4.tcp_fin_timeout = 30<br />
net.ipv4.tcp_keepalive_time = 1200<br />
net.ipv4.tcp_syncookies = 1<br />
net.ipv4.tcp_tw_reuse = 1<br />
net.ipv4.tcp_tw_recycle = 1<br />
net.ipv4.ip_local_port_range = 1024    65000<br />
net.ipv4.tcp_max_syn_backlog = 8192<br />
net.ipv4.tcp_max_tw_buckets = 5000</p>
<p>　　说明：<br />
　　net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时，启用cookies来处理，可防范少量SYN攻击，默认为0，表示关闭；<br />
　　net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接，默认为0，表示关闭；<br />
　　net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收，默认为0，表示关闭。<br />
　　net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭，这个参数决定了它保持在FIN-WAIT-2状态的时间。<br />
　　net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候，TCP发送keepalive消息的频度。缺省是2小时，改为20分钟。<br />
　　net.ipv4.ip_local_port_range = 1024    65000 表示用于向外连接的端口范围。缺省情况下很小：32768到61000，改为1024到65000。<br />
　　net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度，默认为1024，加大队列长度为8192，可以容纳更多等待连接的网络连接数。<br />
　　net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量，如果超过这个数字，TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000，改为5000。对于Apache、Nginx等服务器，上几行的参数可以很好地减少TIME_WAIT套接字数量，但是对于Squid，效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量，避免Squid服务器被大量的TIME_WAIT套接字拖死。</p>
<p>　　执行以下命令使配置生效：</p>
<p>/sbin/sysctl -p</p>
]]></content:encoded>
			<wfw:commentRss>http://www.waimv.com/linux/26/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
