C# Redis實戰(三)

來源:互聯網
上載者:User

標籤:[]   start   security   long   throw   blank   odi   rect   sdn   

三、程式配置在C# Redis實戰(二)中我們安裝好了Redis的系統服務,此時Redis服務已經運行。現在我們需要讓我們的程式能正確讀取到Redis服務地址等一系列的配置資訊,首先,需要在Web.config檔案中添加如下資訊: [html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <!--  
  3.   有關如何配置 ASP.NET 應用程式的詳細資料,請訪問  
  4.   http://go.microsoft.com/fwlink/?LinkId=169433  
  5.   -->  
  6. <configuration>  
  7.   <configSections>  
  8.     <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->  
  9.     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />  
  10.     <section name="RedisConfig" type="RedisDemo.RedisConfigInfo, RedisDemo"/>  
  11.   </configSections>  
  12.   <RedisConfig WriteServerList="127.0.0.1:6379" ReadServerList="127.0.0.1:6379" MaxWritePoolSize="60"  
  13.         MaxReadPoolSize="60" AutoStart="true" LocalCacheTime="180" RecordeLog="false">  
  14.   </RedisConfig>  
  15.   <connectionStrings>  
  16.     <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-RedisDemo-20131125110945;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-RedisDemo-20131125110945.mdf" />  
  17.   </connectionStrings>  
  18.   
  19. </configuration>  

有了以上資訊還不夠,還需要用C#代碼來讀取並且操作,擷取Redis配置的程式如下: [csharp] view plain copy
  1. public static RedisConfigInfo GetConfig()  
  2.        {  
  3.            RedisConfigInfo section = (RedisConfigInfo)ConfigurationManager.GetSection("RedisConfig");  
  4.            return section;  
  5.        }  
  6.   
  7.        public static RedisConfigInfo GetConfig(string sectionName)  
  8.        {  
  9.            RedisConfigInfo section = (RedisConfigInfo)ConfigurationManager.GetSection("RedisConfig");  
  10.            if (section == null)  
  11.                throw new ConfigurationErrorsException("Section " + sectionName + " is not found.");  
  12.            return section;  
  13.        }  

Redis管理類代碼: [csharp] view plain copy
    1. /// <summary>  
    2.        /// redis設定檔資訊  
    3.        /// </summary>  
    4.        private static RedisConfigInfo redisConfigInfo = RedisConfigInfo.GetConfig();  
    5.   
    6.        private static PooledRedisClientManager prcm;  
    7.   
    8.        /// <summary>  
    9.        /// 靜態構造方法,初始化連結池管理對象  
    10.        /// </summary>  
    11.        static RedisManager()  
    12.        {  
    13.            CreateManager();  
    14.        }  
    15.   
    16.   
    17.        /// <summary>  
    18.        /// 建立連結池管理對象  
    19.        /// </summary>  
    20.        private static void CreateManager()  
    21.        {  
    22.            string[] writeServerList = SplitString(redisConfigInfo.WriteServerList, ",");  
    23.            string[] readServerList = SplitString(redisConfigInfo.ReadServerList, ",");  
    24.   
    25.            prcm = new PooledRedisClientManager(readServerList, writeServerList,  
    26.                             new RedisClientManagerConfig  
    27.                             {  
    28.                                 MaxWritePoolSize = redisConfigInfo.MaxWritePoolSize,  
    29.                                 MaxReadPoolSize = redisConfigInfo.MaxReadPoolSize,  
    30.                                 AutoStart = redisConfigInfo.AutoStart,  
    31.                             });  
    32.        }  
    33.   
    34.        private static string[] SplitString(string strSource, string split)  
    35.        {  
    36.            return strSource.Split(split.ToArray());  
    37.        }  
    38.   
    39.        /// <summary>  
    40.        /// 用戶端快取作業對象  
    41.        /// </summary>  
    42.        public static IRedisClient GetClient()  
    43.        {  
    44.            if (prcm == null)  
    45.                CreateManager();  
    46.   
    47.            return prcm.GetClient();  
    48.        } 

C# Redis實戰(三)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.