zz .net memcache

http://www.cnblogs.com/mingh/archive/2009/11/06/1597266.htmlhtml

 

一,準備
        你須要有一下軟件:
       VS.NET(05/08)
       SQLSERVER
       memcached服務器端以及客戶端類庫(開源軟件,下載便可)
其中,客戶端類庫包括如下幾個DLL:
       Memcached.ClientLibrary.dll
       ICSharpCode.SharpZipLib.dll
       log4net.dll
       二,安裝memcached服務器端
       將memcached.exe複製到任意目錄下,如 c:,在命令行輸入:
memcached.exe -d install
memcached將做爲一個服務常駐系統內存了web

 


      三,創建ASP.NET工程
     建立一個ASP.NETWEB項目,命名爲MMCWEB,添加以上提到的幾個客戶端類庫的引用。
     四,配置
     memcached使用了log4net,因此咱們先配置log4net
在web.config裏找到configSections節點,添加如下內容
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

再在configSections節點以外,增長如下內容:
<log4net>
        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
            <param name="File" value="LogFiles/"/>
            <param name="AppendToFile" value="true"/>
            <param name="MaxSizeRollBackups" value="10"/>
            <param name="StaticLogFileName" value="false"/>
            <param name="DatePattern" value="yyyy-MM-dd&quot;.txt&quot;"/>
            <param name="RollingStyle" value="Date"/>
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger %ndc - %message%newline"/>
            </layout>
        </appender>
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger %ndc - %message%newline" />
            </layout>
        </appender>
        <root>
            <level value="ALL" />
            <appender-ref ref="RollingLogFileAppender" />
            <appender-ref ref="ConsoleAppender" />
        </root>
        <logger name="Memcached.ClientLibrary">
            <level value="WARN" />

        </logger>
    </log4net>
啓動調試,若沒出現配置的出錯提示,而且在網站目錄下有文件夾LogFiles,就說明log4net配置成功了。數據庫

 五,初始化SockIOPool
SockIOPool是什麼東東?SockIOPool是Memcached客戶端提供的一個套接字鏈接池,通俗講,就是與Memcached服務器端交換數據的對象。SockIOPool在應用程序啓動時初始化一次就能夠了,我把這個工做放在 GLOBAL.ASAX.CS的Application_Start方法裏
char[] separator = { ',' };
            string[] serverlist = ConfigurationManager.AppSettings["Memcached.ServerList"].Split(separator);

            // initialize the pool for memcache servers
            try
            {
                SockIOPool pool = SockIOPool.GetInstance();
                pool.SetServers(serverlist);

                pool.InitConnections = 3;
                pool.MinConnections = 3;
                pool.MaxConnections = 50;

                pool.SocketConnectTimeout = 1000;
                pool.SocketTimeout = 3000;

                pool.MaintenanceSleep = 30;
                pool.Failover = true;

                pool.Nagle = false;
                pool.Initialize();
            }
            catch (Exception err)
            {
                //這裏就能夠用Log4Net記錄Error啦!
            }

注意AppSettings["Memcached.ServerList"]是在WEB.CONFIG裏設置的,因此WEB.CONFIG的appSettings的子節點裏須要有如下一行
<add key="Memcached.ServerList" value="127.0.0.1:11211"/>
啓動調試服務器,若沒有出錯的日誌記錄,說明IO鏈接池已經開闢成功。
        六,使用Memcached
       終於進入正題了,不過使用以前,咱們還須要準備一些數據。
      建立一個實體類People,並加上Serializable屬性!!!
      對應的數據庫裏,增長一張表,字段對應實體類,插入一些測試數據。持久層和業務層的設計就略過了,他們負責向提供一些數據,返回類型可自定,若ILIST,DATASET。
     Memcached使用起來就很簡單了,好比後臺檢索出一組People類型的數據,放在一個叫peopleList的arraylist裏,並且這個arraylist要頻繁使用,只須要這樣
MemcachedClient mc = new MemcachedClient();
mc.EnableCompression = true;
mc.Set(key, peopleList);     
         上面的key是用來訪問這個arraylist的鍵,Memcached裏的數據都是保存爲鍵-值對的。
一旦mc.KeyExists(key)爲TRUE,就用return mc.Get(key) as ArrayList提取數據,刪除時,使用 return mc.Delete(key);等等。能夠本身琢磨了。

         以上只是演示,其實數據緩存是一項複雜而繁瑣的工做,不只須要後臺代碼的分層優化,也須要數據庫對大數據量訪問的策略和調優。緩存

 

 

-------------------------------------------------------------------------------------------------------------------------------服務器

memcached的基本設置app

-p 監聽的端口
-l <ip_addr>鏈接的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 顯示幫助memcached

相關文章
相關標籤/搜索