Domanda

Ho bisogno di avere libreria che può essere utilizzato come memcache con la mia CodeIgniter. che cosa devo fare è estrarre i menu da DB su base ruolo dell'utente e quindi memorizzare il menu nella cache. L'idea è di mostrare il menu esatto ad un altro utente se ha lo stesso ruolo (senza chiamare DB). Ho una visione separata per i menu (intestazione) e comprende su ogni pagina del mio (vista). Ecco una cosa da notare è ogni volta che un controller viene eseguito quando si richiede ad una nuova pagina (vista).

Ho appena usato una libreria https://github.com/tomschlick/memcached-library che non ha funzionato per me in questo scenario. Mentre io chiamo la nuova pagina di visualizzazione dell'intestazione genera un errore per la funzione get non definito per memcache (come lo sono io ottenere i dati in intestazione tramite memcache).

C'è qualche libreria solido o modo per realizzare il compito?

Grazie

È stato utile?

Soluzione

biblioteca

CodeIgniter2 è la memorizzazione nella cache, che supporta Memcache https: // www .codeigniter.com / user_guide / librerie / caching.html # memcached-caching

Usa qualcosa lilke che:

$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 campione dal forum CI

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

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

Altri suggerimenti

C'è un post sul forum con il metodo corretto delineato qui:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top