在codeigniter中使用memcache

Tau*_*han 4 memcached codeigniter codeigniter-2

我需要有可以用作codeigniter的memcache的库.我需要做的是在用户角色的基础上从DB中提取菜单,然后将菜单存储在缓存中.如果它具有相同的角色(不调用DB),则该想法是向另一个用户显示确切的菜单.我有一个单独的菜单视图(标题),并在我的每个页面(视图)中包含它.这里需要注意的是每次在请求新页面(视图)时执行控制器.

我刚刚使用了一个库https://github.com/tomschlick/memcached-library,在这种情况下这对我不起作用.当我调用新页面时,标题视图会为memcache的未定义的get函数抛出一个错误(因为我通过memcache从头部获取数据).

是否有任何可靠的库或方法来完成任务?

谢谢

Aqu*_*laX 15

CodeIgniter2有缓存库,它支持Memcache https://www.codeigniter.com/user_guide/libraries/caching.html#memcached-caching

使用lilke:

$role_id = 2;  
$menu = $foo = $this->cache->get('menu_'.$role_id);
if (!$menu){
  $menu_data = $this->my_model->loadMenu($role_id);
  $menu = $this->load->view('menu_tpl', $menu_data, TRUE);
  $this->cache->save('menu_'.$role_id, $menu);
}
Run Code Online (Sandbox Code Playgroud)

来自CI论坛的示例memcache.php

<?php
  if (!defined('BASEPATH')) exit('No direct script access allowed');

  $config['memcached'] = array(
          'hostname' => '127.0.0.1',
          'port'        => 11211,
          'weight'    => 1
  );
?> 
Run Code Online (Sandbox Code Playgroud)