CodeigniterでMemcacheを使用します
-
25-10-2019 - |
質問
CodeigniterでMemcacheとして使用できるライブラリが必要です。私がする必要があるのは、ユーザーの役割でDBからメニューを抽出し、メニューをキャッシュに保存することです。アイデアは、同じ役割がある場合(DBを呼び出すことなく)、正確なメニューを別のユーザーに表示することです。私はメニュー(ヘッダー)の別のビューがあり、それぞれのページ(ビュー)にそれを含めます。ここで注意すべきことは、新しいページ(表示)にリクエストするときにコントローラーが実行されるたびに実行されることです。
ライブラリを使用しました https://github.com/tomschlick/memcached-library このシナリオでは、私にとってはうまくいきませんでした。新しいページを呼び出すと、ヘッダービューはMemcacheの定義されていないGet関数のエラーをスローします(Memcacheを介してヘッダーでデータを取得しているため)。
タスクを達成するための堅実なライブラリや方法はありますか?
ありがとう
解決
Codeigniter2には、Memcacheをサポートするキャッシュライブラリがあります https://www.codeigniter.com/user_guide/libraries/caching.html#memcached-caching
何かを使ってそれを使ってください:
$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);
}
からmemcache.phpのサンプル CIフォーラム
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
$config['memcached'] = array(
'hostname' => '127.0.0.1',
'port' => 11211,
'weight' => 1
);
?>
他のヒント
ここに概説されている正しい方法があるフォーラムの投稿があります:
所属していません StackOverflow