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