那點所謂的分布式——redis


 

     日常開發中,總會接觸到一些好玩的東西,比如這篇的redis,一說到redis,可能就有人跟memcache做比較了,是呀,

memcache只能說是簡單的kv內存數據結構,而redis支持的數據類型就豐富多了,當然最能讓人看上眼的就是SortedSet。

有了它,我們就可以玩一些“貪心”的問題,比如適合“貪心”的優先隊列,說到優先隊列,我們以前實現了僅僅是內存形式的,

哎,內存畢竟是內存,當有海量數據的時候,最好能有一個序列化到硬盤的操作。。。恰恰這個場景redis就可以辦到。。。

一:快速搭建

    好了,我們知道redis比較適合做的事情了,現在我們可以進行快速搭建。

第一步:下載redis-2.0.2.zip (32 bit)。然后改名為redis放在D盤中。

 

最重要的也就是下面兩個:

redis-server.exe:        這個就是redis的服務端程序。

redis-cli.exe:             服務端開啟后,我們的客戶端就可以輸入各種命令測試了。

從圖中我們可以看到兩點:

①:沒有指定config file。

     原來redis建議我們做一個配置文件,那我就搞段配置。

daemonize:  是否以“守護進程”的方式開啟,當是守護進程的時候就不受控制台的影響了。

logfile:         log文件位置。

database:    開啟數據庫的個數。

dbfilename:  數據快照文件名。

save * *:     保存快照的頻率,第一個為時間,第二個為寫操作。

將這些配置好后,我們再看看:

②:我們看到redis默認的開放端口為6379。

 

二:安裝驅動

好了,redis已經搭建完畢了,現在我們就要用C#去操作redis,這也是我最渴望的功能,優先隊列~,先下載C#驅動

就可以看到如下3個dll。

最后我們做下小測試:

 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             var client = new RedisClient("127.0.0.1", 6379);
 6 
 7             //最后一個參數為我們排序的依據
 8             var s = client.AddItemToSortedSet("12", "百度", 400);
 9 
10             client.AddItemToSortedSet("12", "谷歌", 300);
11             client.AddItemToSortedSet("12", "阿里", 200);
12             client.AddItemToSortedSet("12", "新浪", 100);
13             client.AddItemToSortedSet("12", "人人", 500);
14 
15             //升序獲取最一個值:"新浪"
16             var list = client.GetRangeFromSortedSet("12", 0, 0);
17 
18             foreach (var item in list)
19             {
20                 Console.WriteLine(item);
21             }
22 
23             //降序獲取最一個值:"人人"
24             list = client.GetRangeFromSortedSetDesc("12", 0, 0);
25 
26             foreach (var item in list)
27             {
28                 Console.WriteLine(item);
29             }
30 
31             Console.Read();
32         }
33     }

AddItemToSortedSet: 第三個參數也就是我們要排序的依據,這也非常適合我們做topK的問題,非常爽~

 


免責聲明!

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



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