|
事实上,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中的事务
|

