2011-10-18 3 views
4

私はcodeigniterでmemcacheとして使用できるライブラリが必要です。私がする必要があるのは、ユーザーの役割に基づいてDBからメニューを抽出し、そのメニューをキャッシュに保存することです。アイデアは、(DBを呼び出すことなく)同じ役割を持っている場合、正確なメニューを別のユーザに表示することです。私はメニュー(ヘッダー)のための別のビューを持って、それを私のページ(ビュー)のそれぞれに含める。ここで注目すべきことは、新しいページ(ビュー)を要求するときにコントローラが実行されるたびにあることです。codeigniterでmemcacheを使用する

私はこのシナリオで私のためにうまくいかなかったライブラリhttps://github.com/tomschlick/memcached-libraryを使用しました。私が新しいページを呼び出すと、ヘッダービューは、定義されていないmemcacheの関数を取得します(memcacheを通じてヘッダにデータを取得しているため)。

タスクを実行するためのライブラリーまたは方法はありますか?

おかげ

答えて

15

CodeIgniter2はそのlilke http://ellislab.com/codeigniter/user_guide/libraries/caching.html#memcached

使用何かのMemcacheをサポートしているキャッシュライブラリ、があります。CI forum

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

    $config['memcached'] = array(
      'hostname' => '127.0.0.1', 
      'port'  => 11211, 
      'weight' => 1 
); 
?> 
+0

感謝を。これらのキャッシュされたオブジェクトは、アプリケーション全体でグローバルにアクセスできますか? –

+0

また、キャッシュにデータを保存できません。データを取得している間、私は「偽」になっています。 –

+0

コードは単なるサンプルでした。オブジェクトは、同じサーバーを使用するため、グローバルにアクセス可能です。キャッシングを正しく設定しましたか? – AquilaX

0

から

$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ありますが正しい私のフォーラムポストここで概説THOD:あなたの応答AquilaXため

http://codeigniter.com/forums/viewthread/180005/

+1

リンクを主な回答として使用しない理由の例: '( – skrilled

関連する問題