|
事實上,IRedisClient里面的很多方法,其實就是Redis的命令名。只要對Redis的命令熟悉一點就能夠非常快速地理解和掌握這些方法,趁着現在對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數據操作1、ICacheClient接口 IRedisClient實現了接口ICacheClient,其中ICacheClient主要提供的功能如下:
特別說明,比如添加的主要方法包括兩個重載,一個多了個DateTime類型參數,一個多了TimeSpan類型的參數。這兩個都是緩存失效的時間(相當於緩存依賴里的絕對過期時間)。
簡單示例: 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、簡單功能 當然,除了實現ICacheClient接口的功能外,對於基本操作,實際上也還有很多功能
3、內置集合 比如,IRedisClient支持在內部維護如下集合類型的數據:
關於如下4種類型數據的操作:
下面僅給出一個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 解釋器,可以執行各種Lua腳本。IRedisClient支持執行Lua腳本,其供用於執行Lua腳本的方法如下:
關於Lua腳本可以到這里去了解:http://www.cnblogs.com/ly4cn/archive/2006/08/04/467550.html 5、事務 Redis中的事務
|

