|
事實上,IRedisClient里面的很多方法,其實就是Redis的命令名。只要對Redis的命令熟悉一點就能夠非??焖俚乩斫夂驼莆者@些方法,趁著現(xiàn)在對Redis不是特別了解,我也對著命令來了解一下這些方法。
一、屬性IRedisClient的屬性如下:
代碼示例: RClient.AddItemToSet("蜀國", "劉備"); RClient.AddItemToSet("蜀國", "關羽"); RClient.AddItemToSet("蜀國", "張飛"); IHasNamed<IRedisSet> rr = RClient.Sets; HashSet<string> HashSetString = rr["蜀國"].GetAll(); foreach (string str in HashSetString) { Response.Write(str); }
二、IRedisClient數(shù)據(jù)操作1、ICacheClient接口 IRedisClient實現(xiàn)了接口ICacheClient,其中ICacheClient主要提供的功能如下:
特別說明,比如添加的主要方法包括兩個重載,一個多了個DateTime類型參數(shù),一個多了TimeSpan類型的參數(shù)。這兩個都是緩存失效的時間(相當于緩存依賴里的絕對過期時間)。
簡單示例: public ActionResult Index() { RedisClientManagerConfig RedisConfig = new RedisClientManagerConfig(); RedisConfig.AutoStart = true; RedisConfig.MaxReadPoolSize = 60; RedisConfig.MaxWritePoolSize = 60; PooledRedisClientManager prcm = new PooledRedisClientManager(new List<string>() { "127.0.0.1" }, new List<string>() { "127.0.0.1" }, RedisConfig); using (IRedisClient RClient = prcm.GetClient()) { RClient.Add("c1", "緩存1"); RClient.Set("c1", "緩存2"); RClient.Replace("c1", "緩存3"); Response.Write(RClient.Get<string>("c1")); RClient.Remove("c1"); Response.Write(RClient.Get<string>("c1") == null); } return Content(""); } 2、簡單功能 當然,除了實現(xiàn)ICacheClient接口的功能外,對于基本操作,實際上也還有很多功能
3、內置集合 比如,IRedisClient支持在內部維護如下集合類型的數(shù)據(jù):
關于如下4種類型數(shù)據(jù)的操作:
下面僅給出一個List<T>與HashSet<T>的示例: //內部維護一個List<T>集合 RClient.AddItemToList("蜀國", "劉備"); RClient.AddItemToList("蜀國", "關羽"); RClient.AddItemToList("蜀國", "張飛"); List<string> ListString = RClient.GetAllItemsFromList("蜀國"); foreach (string str in ListString) { Response.Write(str); //輸出 劉備 關羽 張飛 } RClient.AddItemToSet("魏國", "曹操"); RClient.AddItemToSet("魏國", "曹操"); RClient.AddItemToSet("魏國", "典韋"); HashSet<string> HashSetString = RClient.GetAllItemsFromSet("魏國"); foreach (string str in HashSetString) { Response.Write(str); //輸出 典韋 曹操 } 下面再給一個范圍Range操作示例: //內部維護一個List<T>集合 RClient.AddItemToSortedSet("蜀國", "劉備", 5); RClient.AddItemToSortedSet("蜀國", "關羽", 2); RClient.AddItemToSortedSet("蜀國", "張飛", 3); IDictionary<String,double> DicString = RClient.GetRangeWithScoresFromSortedSet("蜀國", 0, 2); foreach (var r in DicString) { Response.Write(r.Key + ":" + r.Value); //輸出 } 3、內置Hash 內部維護一個HashTable
代碼示例: RClient.SetEntryInHash("xxx","key","123"); List<KeyValuePair<string, string>> keyValuePairs = new List<KeyValuePair<string, string>>(); KeyValuePair<string, string> kvp = new KeyValuePair<string, string>("key", "1"); keyValuePairs.Add(kvp); RClient.SetRangeInHash("xxx", keyValuePairs);
4、Lua Script 從 Redis 2.6.0 版本開始,通過內置的 Lua 解釋器,可以執(zhí)行各種Lua腳本。IRedisClient支持執(zhí)行Lua腳本,其供用于執(zhí)行Lua腳本的方法如下:
關于Lua腳本可以到這里去了解:http://www.cnblogs.com/ly4cn/archive/2006/08/04/467550.html 5、事務 Redis中的事務
|
|
|