Home  >  Article  >  Backend Development  >  php memcache singleton

php memcache singleton

WBOY
WBOYOriginal
2016-07-30 13:30:051167browse

  1. First set __construct() to private so that new is not allowed externally
  2. Instantiate an object inside the class. As long as it is available externally
<code><span><span>class</span><span>Mem</span><span>extends</span><span>Memcache</span>{</span><span>private</span><span>static</span><span>$mem_instance</span> = <span>null</span>;
    <span>private</span><span><span>function</span><span>__construct</span><span>()</span>{</span><span>parent</span>::__construct();
    }
    <span>private</span><span><span>function</span><span>__clone</span><span>()</span>{</span>}
    <span>public</span><span>static</span><span><span>function</span><span>get_mem_ins</span><span>()</span>{</span><span>if</span>(<span>null</span> === <span>self</span>::<span>$mem_instance</span>){
            <span>self</span>::<span>$mem_instance</span> = <span>new</span> Memcache;
        }
        <span>return</span><span>self</span>::<span>$mem_instance</span>;
    }
}</code>
  1. memcache operation
<code><span><?</span>php
    <span>//连接</span><span>$mem</span><span>=</span><span>new</span> Memcache;
    <span>$mem</span><span>-></span>connect(<span>"db.nowamagic.net"</span>, <span>12000</span>);
    <span>//保存数据</span><span>$mem</span><span>-></span><span>set</span>(<span>'key1'</span>, <span>'This is first value'</span>, <span>0</span>, <span>60</span>);
    <span>$val</span><span>=</span><span>$mem</span><span>-></span>get(<span>'key1'</span>);
    echo <span>"Get key1 value: "</span><span>.</span><span>$val</span><span>.</span><span>"<br />"</span>;
    <span>//替换数据</span><span>$mem</span><span>-></span>replace(<span>'key1'</span>, <span>'This is replace value'</span>, <span>0</span>, <span>60</span>);
    <span>$val</span><span>=</span><span>$mem</span><span>-></span>get(<span>'key1'</span>);
    echo <span>"Get key1 value: "</span><span>.</span><span>$val</span><span>.</span><span>"<br />"</span>;
    <span>//保存数组</span><span>$arr</span><span>=</span><span>array</span>(<span>'aaa'</span>, <span>'bbb'</span>, <span>'ccc'</span>, <span>'ddd'</span>);
    <span>$mem</span><span>-></span><span>set</span>(<span>'key2'</span>, <span>$arr</span>, <span>0</span>, <span>60</span>);
    <span>$val2</span><span>=</span><span>$mem</span><span>-></span>get(<span>'key2'</span>);
    echo <span>"Get key2 value: "</span>;
    print_r(<span>$val2</span>);
    echo <span>"<br />"</span>;
    <span>//删除数据</span><span>$mem</span><span>-></span>delete(<span>'key1'</span>);
    <span>$val</span><span>=</span><span>$mem</span><span>-></span>get(<span>'key1'</span>);
    echo <span>"Get key1 value: "</span><span>.</span><span>$val</span><span>.</span><span>"<br />"</span>;
    <span>//清除所有数据</span><span>$mem</span><span>-></span>flush();
    <span>$val2</span><span>=</span><span>$mem</span><span>-></span>get(<span>'key2'</span>);
    echo <span>"Get key2 value: "</span>;
    print_r(<span>$val2</span>);
    echo <span>"<br />"</span>;
    <span>//关闭连接</span><span>$mem</span><span>-></span>close();
<span>?></span><span></span></code>
  1. output
<code>Get key1 <span>value</span>: This <span>is</span> first <span>value</span>
Get key1 <span>value</span>: This <span>is</span> replace <span>value</span>
Get key2 <span>value</span>: Array ( [<span>0</span>] => aaa [<span>1</span>] => bbb [<span>2</span>] => ccc [<span>3</span>] => ddd )
Get key1 <span>value</span>:
Get key2 <span>value</span>:</code>

Copyright statement: Knowledge comes from the people, and is used by the people! Reprinting is welcome. Please attach a link to this article at the beginning. The article will be updated from time to time!

The above introduces the php memcache singleton, including the relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn