memcache時php使用memcached的一個擴展,是一種分布式內存對象緩存系統。用來存儲經常要查詢到的數據,減少對數據庫的訪問,提高整體網站的速度。
簡單提一下memcache與redis區別,memcache和redis都是內存數據庫,redis不僅是K=>V是緩存,還有list,hash等,簡單K=>V存儲用memcache就可以了。
下面是Linux Ubuntu16.04 memcache的安裝及使用
1.因為memcache是php使用memcached的擴展,所以先要安裝memcached(memcache服務端)
sudo apt-get install memcached
2.安裝完memcached,接下來啟動它
memcached -d -m 128 -p 11111 -u root
-m 指定使用多少兆的緩存空間;-p 指定要監聽的端口; -u 指定以哪個用戶來運行
3.安裝memcache客戶端
sudo apt-get install php7-memcache
安裝完客戶端在/etc/php/7.0/apache/php.ini里加入extension=memcache.so(根據自己的具體路徑添加)
php -m沒有的話在/etc/php/7.0/cli/php.ini里也加入extension=memcache.so(根據自己的具體路徑添加)
安裝好之后去測試一下吧
在laravel5.5中引入memcahce,use memcache
class IndexController extends Controller { public $mem; public function __construct() { $this->mem = new Memcache; $this->mem->connect("127.0.0.1", 11211); } public function index() { $userinfo = array('n'=>'李四','s'=>'男'); //判斷num是否為true,否則設置起始值為1 if ($this->mem->get('num')) { $this->mem->increment('num', 1); }else{ $this->mem->set('num',1); } //以原子自增為鍵,存儲數據 $this->mem->set($this->mem->get('num'),serialize($userinfo),false,0); //定義一個數組,循環取出值 $list = array(); for ($i=0; $i <= $this->mem->get('num'); $i++) { if ($this->mem->get($i)) { $list[$i] = unserialize($this->mem->get($i)); } } var_dump($list);//輸出array(1) { [1]=> array(2) { ["n"]=> string(6) "李四" ["s"]=> string(3) "男" } } } }