Utilizzare Memcached con ASP.NET

datevenerdì 2 dicembre 2011 alle 14.43  - posted by Manuel Scapolan in ASP.NET | NoSQL

Vediamo come in 5 minuti possiamo configurare Memcached per la nostra applicazione ASP.NET.

Passo 1 - Installazione di Membase Server

Invece di installare Memcached come prodotto "stand-alone" ho deciso di utilizzare Membase Server un "key-value database management system" che tra l'altro permette di gestire Memcached attraverso una comoda console web. Per installare Membase Server dobbiamo scaricare il pacchetto di installazione specifico per il nostro sistema operativo, nel mio caso Windows.

membase

Passo 2 - Configurazione del server

Una volta completata l'installazione ci viene proposto un wizard per la configurazione del server.

membase web console

Nel primo step definiamo la destinazione su disco dello storage e quanta RAM dedicare alla cache.

membase configuration wizard

OK, ma Memcached non era un database in memoria, perché allora ci chiede spazio su disco?
Sì memcached salva i dati in memoria, ma il server di Membase permette anche di scegliere come database una versione nativa che aggiunge a memcached caratteristiche di persistenza e replica.

Il secondo step consiste appunto nella scelta del tipo di storage (in Membase viene definito Bucket) e noi scegliamo Memcached.

membase configuration wizard

Gli ultimi due step consentono di configurare le notifiche sugli aggiornamenti del software e le credenziali di accesso alla console.

Passo 3 - Se siamo in DHCP

Se siamo in DHCP e vogliamo utilizzare Membase in locale dobbiamo andare nella cartella Server/bin sotto l'installazione di Membase e lanciare da prompt (come amministratore) i seguenti comandi:

> service_stop.bat
> service_unregister.bat
> service_register.bat ns_1@127.0.0.1
> service_start.bat

A questo punto dovremmo avere Membase configurato in locale.

Passo 4 - Scaricare le librerie client

Per poter utilizzare Memcached dalla nostra applicazione dobbiamo ora installare le librerie client Enyim Memcached versione 2.11 e Membase versione 2.14, invece di scaricarle da internet possiamo utilizzare il Package Manager di NuGet.


librerie client da nuget

Passo 5 - Configurare l'applicazione web

Nel web.config dobbiamo aggiungere la seguente configurazione:

<configuration>
  <configSections>
    <section name="membase" 
           type="Membase.Configuration.MembaseClientSection, Membase"/>
  </configSections>
  
  <membase>
    <servers bucket="default" bucketPassword="">
      <add uri="http://127.0.0.1:8091/pools/default"/>
    </servers>
  </membase>

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup> 

Passo 6 - Hello Memcached

A questo punto non ci resta che instanziare il client e salvare il nostro primo valore in Memcached.

using Enyim.Caching.Memcached;
using Membase;
...
public ActionResult Index()
{
   using (var client = new MembaseClient())
   {
      client.Store(StoreMode.Set, "hello", "

Hello Memcached

"); var msg = client.Get<string>("hello"); ViewBag.Message = msg; } return View(); }

Attenzione! La creazione del client è molto dispendiosa, è opportuno quindi instanziarlo una volta sola magari alla partenza dell'applicazione.

Dalla console di Membase possiamo monitorare l'attività del server e scegliere se necessario di aggiungere a caldo altri server al cluster.


librerie client da nuget

A questo punto siamo liberi di utilizzare Memcached per velocizzare la nostra applicazione ASP.NET ed alleggerire il carico sul nostro caro e vecchio database relazionale!


Fonte: Getting Started with Membase and C#

Commenti chiusi

About me

manuel scapolanSono un consulente informatico. Nel 2004 terminati gli studi in Ingegneria Informatica (1° livello), ho iniziato come freelance collaborando con una ditta di consulenza informatica ed una agenzia di marketing e comunicazione nello sviluppo di applicazioni web. Attualmente divido il lavoro di sviluppatore e progettista web con attività di formazione nel settore della programmazione.
View Manuel Scapolan's profile on LinkedIn

Follow me on Follow manuelscapolan on Twitter
Member of:
innova

Calendario


<<  febbraio 2012  >>
lumamegivesado
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

Disclaimer

Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati mediante:
creative commons
Attribuzione: Non commerciale
Condividi allo stesso modo. R.2.5

Books (a bit more about my library)

Domain Driven Design - Eric Evans Applying Domain-Driven Design and Patterns - Jimmy Nilsson Refactoring to Patterns - Joshua Kerievsky Design Patterns -  Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides Code Complete Second Edition - Steve McConnell Patterns of Enterprise Application Architecture - Martin Fowler Agile Principles, Patterns, and Practices in C# - Robert C. Martin xUnit Test Patterns - Gerard Meszaros Refactoring - Martin Fowler CLR via C# Second Edition - Jeffrey Richter Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries - Krzysztof Cwalina, Brad Abrams Don't make me think! - Steve Krug Bulletproof Ajax - Jeremy Keith

Manuel Scapolan Copyright © 2007 - 2010 - Tutti i diritti riservati - Powered by BlogEngine.NET 1.5.0.7 - silk icons by famfamfam - Time CET