Redis 環境搭建與使用(C#)

Redishtml

Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。git

Redis是一個key-value存儲系統。和Memcached相似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操做,並且這些操做都是原子性的。在此基礎上,redis支持各類不一樣方式的排序。與memcached同樣,爲了保證效率,數據都是緩存在內存中。區別的是redis會週期性的把更新的數據寫入磁盤或者把修改操做寫入追加的記錄文件,而且在此基礎上實現了master-slave(主從)同步。github

Redis 是一個高性能的key-value數據庫。 redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部 分場合能夠對關係數據庫起到很好的補充做用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便。
Redis支持主從同步。數據能夠從主服務器向任意數量的從服務器上同步,從服務器能夠是關聯其餘從服務器的主服務器。這使得Redis可執行單層樹複製。存盤能夠有意無心的對數據進行寫操做。因爲徹底實現了發佈/訂閱機制,使得從數據庫在任何地方同步樹時,可訂閱一個頻道並接收主服務器完整的消息發佈記錄。同步對讀取操做的可擴展性和數據冗餘頗有幫助。
 
安裝與測試
我這邊環境是windows7
解壓至任意目錄,雙擊運行 resis-server.exe
測試須要執行 redis—cli.exe
 
也能夠將 resis-server.exe 註冊到windows服務中,須要下載服務安裝組件 https://github.com/rgl/redis/downloads
 
 
啓動服務後測試(get  set)
至此,安裝已經完成
 
C#實現
建立C#項目,添加redis相關引用,使用微軟推薦的ServiceStack.Redis,建議使用VS2013,否則安裝會失敗。
 
using ServiceStack.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace TestRedis
{
    class Program
    {
        static void Main(string[] args)
        {
            PooledRedisClientManager prcm = CreateManager();
            //讀寫客戶端
            using (IRedisClient Redis = prcm.GetClient())
            {
                Redis.Set("test", "testvalue" + DateTime.Now.ToString(), DateTime.Now.AddDays(10));
            }
            //只讀客戶端
            using (IRedisClient Redis = prcm.GetReadOnlyClient())
            {
                Console.WriteLine(Redis.Get<string>("test"));
            }
            Console.WriteLine("-----");
            Thread.Sleep(15000);
            Console.WriteLine("-----");
            using (IRedisClient Redis = prcm.GetReadOnlyClient())
            {
                Console.WriteLine("15秒後:" + Redis.Get<string>("test"));
            }
            Console.Read();
        }

        public static PooledRedisClientManager CreateManager()
        {
            //支持讀寫分離,均衡負載,負載均衡須要單獨部署
            return new PooledRedisClientManager(new string[] { "10.58.8.239:6379" }//用於寫
                , new string[] { "10.58.8.239:6379" }//用於讀
                , new RedisClientManagerConfig
            {
                MaxWritePoolSize = 10,//「寫」連接池連接數
                MaxReadPoolSize = 10,//「寫」連接池連接數
                AutoStart = true,
               
            });
        }
    }
}

 

 

做者:釋迦苦僧 出處:http://www.cnblogs.com/woxpp/p/5007623.html 本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。redis

相關文章
相關標籤/搜索