質問

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
  );
?> 

他のヒント

ここに概説されている正しい方法があるフォーラムの投稿があります:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top