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) "男" } } }
}