<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[实践OK]PHP的Memcache和memcached扩展安装后demo测试代码片段，连接的程序虽小值得常使用。。。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Wed, 28 Apr 2010 14:56:13 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	目的：官方PHP7.3.12版本的代码的memcached/memcache的扩展有些不是官方的，打包后需要简单测试一下：<br/>centos6.x：<br/>php-7.3.12-200119174731.el6.x86_64<br/>memcached-php73-3.1.5-200120160443.el6.x86_64<br/>memcache-php73-4.0.5-200120133708.el6.x86_64<br/>redis-php73-3.1.2-200120134324.el6.x86_64<br/><br/>centos7.x：<br/>memcached-php73-3.1.5-200120155225.el7.centos.x86_64.rpm<br/>php-7.3.12-191219193316.el7.centos.x86_64.rpm<br/>memcache-php73-4.0.5-200119152756.el7.centos.x86_64.rpm<br/>redis-php73-3.1.2-191218163944.el7.centos.x86_64.rpm<br/><br/><br/>一）memcace扩展代码成功如下：<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
date_default_timezone_set (&#039;Asia/Shanghai&#039;);
//连接
$memcache = new Memcache;
$memcache-&gt;connect(&quot;10.71.11.4*&quot;, 11211);
$memcache-&gt;set(&#039;name&#039;, &#039;TK&#039;);
echo $memcache-&gt;get(&#039;name&#039;);
</textarea><br/>php bar.php <br/>TK<br/><br/>telnet 10.71.11.4* 11211<br/>Trying 10.71.11.4*...<br/>Connected to 10.71.11.4*.<br/>Escape character is &#039;^]&#039;.<br/>get name<br/>VALUE name 0 2<br/>TK<br/>END<br/>set name 0 0 4&nbsp;&nbsp; <br/>jack<br/>STORED<br/>get name<br/>VALUE name 0 4<br/>jack<br/>END<br/><br/><br/>php bar.php&nbsp;&nbsp; #&nbsp;&nbsp;//$memcache-&gt;set(&#039;name&#039;, &#039;TK&#039;);<br/>jack<br/><br/>更多telnet 的操作：<br/><a href="https://jackxiang.com/post/2484/" target="_blank">https://jackxiang.com/post/2484/</a><br/><br/>二）memcached扩展下的PHP测试代码如下：<br/><textarea name="code" class="php" rows="15" cols="100">
cat memcached.php 
&lt;?php
$mc = new memcached;
$mc-&gt;addServer(&#039;10.71.11.40&#039;, 11211);
$mc-&gt;set(&#039;123&#039;,1);
var_dump($mc-&gt;get(&#039;123&#039;));
</textarea><br/>php memcached.php <br/>int(1)<br/><br/>telnet 10.71.11.40 11211<br/>Trying 10.71.11.40...<br/>Connected to 10.71.11.40.<br/>Escape character is &#039;^]&#039;.<br/>get 123<br/>VALUE 123 1 1<br/>1<br/>END<br/><br/>==========================================EOF================================<br/><br/>PHP代码保存数组片段如下：<br/><div class="code"><br/>&lt;?php<br/>date_default_timezone_set (&#039;Asia/Shanghai&#039;);<br/>//连接<br/>$mem = new Memcache;<br/>$mem-&gt;connect(&quot;10.70.33.1&quot;, 11211);<br/>//保存数据<br/>$mem-&gt;set(&#039;key1&#039;, &#039;This is first value&#039;, 0, 60);<br/>$val = $mem-&gt;get(&#039;key1&#039;);<br/>echo &quot;Get key1 value: &quot; . $val .&quot;&lt;br /&gt;&quot;;<br/>// 替换数据<br/>$mem-&gt;replace(&#039;key1&#039;, &#039;This is replace value&#039;, 0, 60);<br/>$val = $mem-&gt;get(&#039;key1&#039;);<br/>echo &quot;Get key1 value: &quot; . $val . &quot;&lt;br /&gt;&quot;;<br/>//保存数组<br/>$arr = array(&#039;aaa&#039;, &#039;bbb&#039;, &#039;ccc&#039;, &#039;ddd&#039;);<br/>$mem-&gt;set(&#039;key2&#039;, $arr, 0, 60);<br/>$val2 = $mem-&gt;get(&#039;key2&#039;);<br/>echo &quot;Get key2 value: &quot;;<br/>print_r($val2);<br/>echo &quot;&lt;br /&gt;&quot;;<br/>//删除数据<br/>$mem-&gt;delete(&#039;key1&#039;);<br/>$val = $mem-&gt;get(&#039;key1&#039;);<br/>echo &quot;Get key1 value: &quot; . $val . &quot;&lt;br /&gt;&quot;;<br/>//清除所有数据<br/>$mem-&gt;flush();<br/>$val2 = $mem-&gt;get(&#039;key2&#039;);<br/>echo &quot;Get key2 value: &quot;;<br/>print_r($val2);<br/>echo &quot;&lt;br /&gt;&quot;;<br/>//关闭连接<br/>$mem-&gt;close();<br/>?&gt;<br/></div><br/><br/>如果正常的话，浏览器将输出： <br/>php&nbsp;&nbsp;memcacheTest.php <br/>Get key1 value: This is first value&lt;br /&gt;Get key1 value: This is replace value&lt;br /&gt;Get key2 value: Array<br/>(<br/>&nbsp;&nbsp;&nbsp;&nbsp;[0] =&gt; aaa<br/>&nbsp;&nbsp;&nbsp;&nbsp;[1] =&gt; bbb<br/>&nbsp;&nbsp;&nbsp;&nbsp;[2] =&gt; ccc<br/>&nbsp;&nbsp;&nbsp;&nbsp;[3] =&gt; ddd<br/>)<br/>&lt;br /&gt;Get key1 value:<br/> &lt;br /&gt;<br/><br/>程序代码分析<br/><br/>初始化一个Memcache的对象： <br/><br/><div class="code">$mem = new Memcache;</div><br/><br/>连接到我们的Memcache服务器端，第一个参数是服务器的IP地址，也可以是主机名，第二个参数是Memcache的开放的端口： <br/><br/><div class="code">$mem-&gt;connect(&quot;192.168.0.200&quot;, 12000);</div><br/><br/>保存一个数据到Memcache服务器上，第一个参数是数据的key，用来定位一个数据，第二个参数是需要保存的数据内容，这里是一个字符串，第三个参数是一个标记，一般设置为0或者MEMCACHE_COMPRESSED就行了，第四个参数是数据的有效期，就是说数据在这个时间内是有效的，如果过去这个时间，那么会被Memcache服务器端清除掉这个数据，单位是秒，如果设置为0，则是永远有效，我们这里设置了60，就是一分钟有效时间： <br/><br/><div class="code">$mem-&gt;set(‘key1‘, ‘This is first value’, 0, 60);</div><br/><br/>从Memcache服务器端获取一条数据，它只有一个参数，就是需要获取数据的key，我们这里是上一步设置的key1，现在获取这个数据后输出输出： <br/><br/><div class="code">$val = $mem-&gt;get(’key1′); <br/>echo &quot;Get key1 value: &quot; . $val;</div><br/><br/>现在是使用replace方法来替换掉上面key1的值，replace方法的参数跟set是一样的，不过第一个参数key1是必须是要替换数据内容的key，最后输出了： <br/><br/><div class="code">$mem-&gt;replace(‘key1′, ‘This is replace value’, 0, 60); <br/>$val = $mem-&gt;get(‘key1′); <br/>echo &quot;Get key1 value: &quot; . $val;</div><br/><br/>同样的，Memcache也是可以保存数组的，下面是在Memcache上面保存了一个数组，然后获取回来并输出 <br/><br/><div class="code">$arr = array(‘aaa’, ‘bbb’, ‘ccc’, ‘ddd’); <br/>$mem-&gt;set(‘key2′, $arr, 0, 60); <br/>$val2 = $mem-&gt;get(‘key2′); <br/>print_r($val2);</div><br/><br/>现在删除一个数据，使用delte接口，参数就是一个key，然后就能够把Memcache服务器这个key的数据删除，最后输出的时候没有结果 <br/><br/><div class="code">$mem-&gt;delete(‘key1′); <br/>$val = $mem-&gt;get(‘key1′); <br/>echo &quot;Get key1 value: &quot; . $val . &quot;&lt;br&gt;&quot;;</div><br/><br/>最后我们把所有的保存在Memcache服务器上的数据都清除，会发现数据都没有了，最后输出key2的数据为空，最后关闭连接 <br/><br/><div class="code">$mem-&gt;flush(); <br/>$val2 = $mem-&gt;get(‘key2′); <br/>echo &quot;Get key2 value: &quot;; <br/>print_r($val2); <br/>echo &quot;&lt;br&gt;&quot;;</div><br/><br/>Memcache的使用 <br/>使用Memcache的网站一般流量都是比较大的，为了缓解数据库的压力，让Memcache作为一个缓存区域，把部分信息保存在内存中，在前端能够迅速的进行存取。那么一般的焦点就是集中在如何分担数据库压力和进行分布式，毕竟单台Memcache的内存容量的有限的。我这里简单提出我的个人看法，未经实践，权当参考。<br/>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [实践OK]PHP的Memcache和memcached扩展安装后demo测试代码片段，连接的程序虽小值得常使用。。。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>