我需要有可以用作codeigniter的memcache的库。我需要做的是在用户角色的基础上从DB中提取菜单,然后将菜单存储在缓存中。如果它具有相同的角色(不调用DB),则该想法是向另一个用户显示确切的菜单。我有一个单独的菜单视图(标题),并在我的每个页面(视图)中包含它。这里需要注意的是每次在请求新页面(视图)时执行控制器。
我刚刚使用了一个库https://github.com/tomschlick/memcached-library,在这种情况下它不适用于我。当我调用新页面时,标题视图会为memcache的未定义的get函数抛出一个错误(因为我通过memcache在头文件中获取数据)。
是否有任何可靠的库或方法来完成任务?
由于
答案 0 :(得分: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);
}
来自CI forum
的示例memcache.php<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
$config['memcached'] = array(
'hostname' => '127.0.0.1',
'port' => 11211,
'weight' => 1
);
?>
答案 1 :(得分:0)
有一个论坛帖子,其中列出了正确的方法: