Redis簡單配置和使用

     學到Redis中須要整理和配置的東西比較多,資源也是比較分散!此次的主要仍是將知識整合一下,開發過程當中所須要的資源整合一下,也方便從此涉及到這塊地方的知識時,將時間大量浪費在了找這些資源上了!html

一.Redis(NOSQL數據庫):

       redis主要是用於存儲鍵值對數據(主要對這進行了優化)的一種數據庫,而且對數據進行了自動過時處理。和memcached不一樣之處在於,redis數據存在本機硬盤上,而memcached則是將數據存在內存中。linux

      redis有Windows版和linux版,日常測試開發基本使用Windows版,在正式項目開發過程當中,通常用linuxgit

 

二.redis的安裝和配置:

       關於redis的安裝(Windows版)能夠參考官方教程配置,github

         這個是經過server.exe啓動的:http://www.redis.net.cn/tutorial/3503.htmlredis

         win64能夠下載這個帶服務的(後綴是.msi):https://github.com/MSOpenTech/redis/releases數據庫

         win32下載選擇適合版本:https://github.com/MSOpenTech/redis/releases?after=win-2.8.2102memcached

        .net驅動:https://github.com/ServiceStack/ServiceStack.Redis/tree/master/lib工具

 

驅動須要下載下列四個:測試

 

 

三.代碼鏈接Redis:優化

根據業務的不一樣,進行相應的鏈接配置,這裏介紹的是最簡單的鏈接配置:

 

class RedisManager
    {
        public static PooledRedisClientManager clientManager { get; private set; }
        static RedisManager()
        {
            RedisClientManagerConfig clientMangerConfig = new RedisClientManagerConfig();
            clientMangerConfig.MaxWritePoolSize = 128;
            clientMangerConfig.MaxReadPoolSize = 128;
            clientManager = new PooledRedisClientManager( new string[] { "127.0.0.1" }, new string[] { "127.0.0.1" }, clientMangerConfig);
        }     
    }

 

設置和讀取值:

 using(client = RedisManager.clientManager.GetClient())
     {
               string str= client.Set<string>("key","value",expireTime);//括號中第一個參數鍵,第二個值是值,第三個是過時時間
     }

 

   關於Redis知識也能夠參考這篇博客,確實也寫的挺好:http://www.cnblogs.com/yangecnu/p/Introduct-Redis-in-DotNET.html

 

四.消息隊列:

         到底什麼是消息隊列?

答:來個我的通俗的解釋吧。消息隊列,顧名思義 首先是個隊列。

隊列的操做有入隊出隊也就是你有一個程序在產生內容而後入隊(生產者)

另外一個程序讀取內容,內容出隊(消費者)

生產數據:

 

 1 static void Main(string[] args)
 2 {
 3     IRedisClient client;
 4     using (client = RedisManager.clientManager.GetClient())
 5     {              
 6         while (true)
 7         {
 8             string line = Console.ReadLine();
 9             client.EnqueueItemOnList("redistest", line);
10             if (line == "ok")
11             {
12                 break;
13             }
14         }   
15     }
16     Console.ReadKey();
17 }

 

消費數據:

static void Main(string[] args)
{
    using (var client = RedisManager.clientManager.GetClient())
    {
        while (true)
        {
            string str = client.DequeueItemFromList("redistest");
            if (str == null)
            {
                Console.WriteLine("沒有找到數據");
                Thread.Sleep(10000);
                continue;
            }
            else
            {
                Thread.Sleep(5000);
                Console.WriteLine(str);
            }
        } 
    }
}

注:這裏能夠大量生產數據,而消費者能夠慢慢的消費生產的數據

 

 

 

五.Redis數據庫管理工具及使用過程當中注意事項:

     Redis數據庫管理工具:http://redisdesktop.com/download

            能夠方便的看到redis Key中存儲的各類類型的值。

    使用Redis時需注意:

            1.當不少數據往Redis中寫入時,要避免鍵衝突:鍵衝突會使得相同名稱的鍵的值會被覆蓋掉。

                     避免鍵衝突:例如能夠適當給鍵的名稱加個前綴

            2.Redis是你們共享存儲的鍵值對存儲空間,A寫入的,B是能夠讀出來的;A寫入的,B也是能夠進行覆蓋掉的

相關文章
相關標籤/搜索