那點所謂的分布式——memcache


 

   這篇開始決定把系列文章的名字改掉,想了個好名字,反正不是玩單機版的就行了。

    好了,這篇我們看看一種非持久化的緩存服務器memcache,說到緩存本能反映就是cache,session什么的,是的,可以說這

些都是基於.net進程的,通俗點也就做不了多機器的共享,典型的一個就是SSO。

 

一: 安裝

     memcahce像redis,mongodb一樣都需要開啟他們自己的服務端,我們下載Memcached_1.2.5.zip,然后放到C盤,修改文件

名為memcached。

1:install

     install可以說是萬能通用命令,首先我們轉到memcached目錄,然后 memcached.exe -d install 即可。

        

2:start

    現在我們只要啟動start即可,要注意的就是memecache默認的端口是11211,當然我也不想重新指定端口了。

        

3:stop,uninstall

     這兩個就不截圖了,一個是停止,一個是卸載,反正都是萬能通用命令。

 

二:驅動程序

   memcache的服務器我們就已經開啟好了,由於在公司最近一直都在用php,算了還是用C#驅動吧,誰讓這是.net

社區呢,下載C#驅動,既然是緩存服務器,只要有基本的CURD,我想應該就差不多了。

 1 using System;
 2 using System.Collections.Generic;
 3 
 4 namespace BeIT.MemCached
 5 {
 6     class Example
 7     {
 8         public static void Main(string[] args)
 9         {
10             //通過配置文件初始化memcache實例
11             MemcachedClient cache = MemcachedClient.GetInstance("MyConfigFileCache");
12 
13             //編輯(可以模擬session操作,緩存20分鍾)
14             cache.Set("name", "一線碼農", DateTime.Now.AddMinutes(20));
15 
16             //獲取
17             var result = cache.Get("name");
18 
19             Console.WriteLine("獲取name的緩存數據為: " + result);
20 
21             //刪除
22             cache.Delete("name");
23 
24             Console.WriteLine("\n成功刪除cache中name的數據");
25 
26             result = cache.Get("name");
27 
28             Console.WriteLine("\n再次獲取cache中name的數據為:" + (result ?? "null") + "\n");
29 
30             //查看下memecahce的運行情況
31             foreach (KeyValuePair<string, Dictionary<string, string>> host in cache.Status())
32             {
33                 Console.Out.WriteLine("Host: " + host.Key);
34                 foreach (KeyValuePair<string, string> item in host.Value)
35                 {
36                     Console.Out.WriteLine("\t" + item.Key + ": " + item.Value);
37                 }
38                 Console.Out.WriteLine();
39             }
40 
41             Console.Read();
42         }
43     }
44 }

我們再定義下配置文件,既然memcache可以用於分布式,那就避免不了將cache分攤到幾台服務器上去,可以看到,下面的

配置也是非常簡單的,當然分配的法則自然是memcache自身的算法決定的,最后別忘了在另一台服務器上開放一個端口就它

就行了。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="beitmemcached" type="System.Configuration.NameValueSectionHandler" />
  </configSections>
  <appSettings>
  </appSettings>
  <beitmemcached>
    <add key="MyConfigFileCache" value="127.0.0.1:11211" />
    <!--<add key="MyConfigFileCache" value="127.0.0.1:11211,127.0.0.1:8888" />-->
  </beitmemcached>
</configuration>

 

下面是打包程序:BeITMemcached ,也可以到codegoogle去下載。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM