一、Windows下安裝Memcache
1、 下載
http://jehiah.cz/projects/memcached-win32/ memcached 1.2.1 for Win32 binaries ;
2、 解壓
到 D:/memcached;
3、 安裝
D:/memcached /memcached.exe -d install
4、 啓動
D:/memcached /memcached.exe -d start
可以在進程中看到memcached.exe
5、其他常用命令
-p 監聽的端口
-l 連接的IP地址, 默認是本機
-d start 啓動memcached服務
-d restart 重起memcached服務
-d stop|shutdown 關閉正在運行的memcached服務
-d install 安裝memcached服務
-d uninstall 卸載memcached服務
-u 以的身份運行 (僅在以root運行的時候有效)
-m 最大內存使用,單位MB。默認64MB
-M 內存耗盡時返回錯誤,而不是刪除項
-c 最大同時連接數,默認是1024
-f 塊大小增長因子,默認是1.25
-n 最小分配空間,key+value+flags默認是48
-h 顯示幫助
二、在NHibernate項目中配置Memcache
1、下載NHibernate第三方二級緩存提供程序 NHibernate.Caches.MemCache 。
http://sourceforge.net/projects/nhcontrib/files/ NHibernate.Caches/
2、在應用程序配置文件(app.config or web.config)中添加:
< section name ="memcache" type ="NHibernate.Caches.MemCache.MemCacheSectionHandler,NHibernate.Caches.MemCache" />
</ configSections >
< memcache >
< memcached host ="127.0.0.1" port ="11211" weight ="2" />
</ memcache >
3、 在hibernate.cfg.xml中添加緩存相關配置。
1) 設置二級緩存提供程序
2) 啓用二級緩存
3) 啓用查詢緩存
4)設置過期時間(秒)
5) 設置緩存的前綴名稱
6) 配置緩存實體
< class-cache class ="Lee.Model.UserInfo,Lee.Model" usage ="read-write" />
hibernate.cfg.xml文件
< hibernate-configuration xmlns ='urn:nhibernate-configuration-2.2' >
< session-factory >
< property name ="show_sql" > true </ property >
< property name ="dialect" > NHibernate.Dialect.MsSql2005Dialect </ property >
< property name ="connection.driver_class" > NHibernate.Driver.SqlClientDriver </ property >
< property name ="proxyfactory.factory_class" > NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle </ property >
< property name ="connection.connection_string_name" > SQLConnection </ property >
< property name ="cache.provider_class" > NHibernate.Caches.MemCache.MemCacheProvider,NHibernate.Caches.MemCache </ property >
< property name ="cache.use_second_level_cache" > true </ property >
< property name ="cache.use_query_cache" > true </ property >
< property name ="cache.default_expiration" > 300 </ property >
< property name ="cache.region_prefix" > Demo </ property >
< mapping assembly ="Lee.Model" />
< class-cache class ="Lee.Model.UserInfo,Lee.Model" usage ="read-write" />
</ session-factory >
</ hibernate-configuration >
4、測試代碼
請先下載以前用到的項目http://files.cnblogs.com/tenghoo/WCFDemo.rar,在項目中修改。
1)在Lee.DAL. UserInfoDAL中添加以下方法:
{
UserInfo u = new UserInfo();
using (_session = _sessionfactory.Session)
{
u = _session.Get < UserInfo > ( 1 );
}
return u;
}
2)調用代碼
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Lee.Model;
using Lee.DAL;
namespace Lee.ConsoleTest
{
class Program
{
static void Main( string [] args)
{
Console.WriteLine( " -第一次讀- " );
UserInfoDAL dal = new UserInfoDAL();
UserInfo u = dal.getUserInfo();
Console.WriteLine();
Console.WriteLine( " ID={0},Name={1} " , u.Id, u.Name);
Console.WriteLine( " -第二次讀- " );
Console.WriteLine();
UserInfoDAL dal2 = new UserInfoDAL();
UserInfo u2 = dal2.getUserInfo();
Console.WriteLine( " ID={0},Name={1} " , u2.Id, u2.Name);
}
}
}
5、開始測試
不啓動memcache,啓動項目
啓動memcache ,啓動項目
保持memcache啓動狀態,重啓項目
三、擴展閱讀
memcache服務器安全問題
http://www.soaspx.com/dotnet/service/service_20091113_1576.html