ServiceStack.Redis之IRedisClient

上传人:飞*** 文档编号:51024141 上传时间:2018-08-12 格式:PDF 页数:12 大小:154.84KB
返回 下载 相关 举报
ServiceStack.Redis之IRedisClient_第1页
第1页 / 共12页
ServiceStack.Redis之IRedisClient_第2页
第2页 / 共12页
ServiceStack.Redis之IRedisClient_第3页
第3页 / 共12页
ServiceStack.Redis之IRedisClient_第4页
第4页 / 共12页
ServiceStack.Redis之IRedisClient_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《ServiceStack.Redis之IRedisClient》由会员分享,可在线阅读,更多相关《ServiceStack.Redis之IRedisClient(12页珍藏版)》请在金锄头文库上搜索。

1、ServiceStack.Redis之 IRedisClient 事实上, IRedisClient里面的很多方法,其实就是Redis的命令名。只要对Redis的命令熟悉一点就能够非常快速地理解和掌握这些方法,趁着现在对Redis不是特别了解,我也对着命令来了解一下这些方法。一、属性IRedisClient的属性如下:属性说明ConnectTimeout 连接超时Db 当前数据库的 ID 或下标DbSize 当前数据库的 key 的数量HadExceptions Hashes 存储复杂对象,一个value 中有几个 field Host Redis 的 Server 服务器主机地址Info 返

2、回关于 Redis 服务器的各种信息和统计数值LastSave 最近一次 Redis 成功将数据保存到磁盘上的时间Lists 当前数据库中所有的List集合Password 密码Port Redis 的 Server 端口RetryCount 重试次数RetryTimeout 重试超时SendTimeout 发送超时Sets 当前数据库中所有的HashSet 集合SortedSets 当前数据库中所有的SortedSet 集合thisstring key 通过索引的方式 (key) 访问一个字符串类型值代码示例:RClient.AddItemToSet(“ 蜀国“, “刘备“ ); RClie

3、nt.AddItemToSet(“ 蜀国“, “关羽“ ); RClient.AddItemToSet(“ 蜀国“, “张飞“ ); IHasNamed rr = RClient.Sets; HashSet HashSetString = rr“蜀国“.GetAll(); foreach ( string str in HashSetString) Response.Write(str); 二、IRedisClient数据操作1 、ICacheClient接口IRedisClient实现了接口ICacheClient,其中 ICacheClient主要提供的功能如下:方法说明Add 根据传入的

4、 key-value 添加一条记录,当key 已存在返回 false FlushAll 使所有缓存失效(清除Redis 所有数据库的所有Key)Get 根据传入的 key 获取一条记录的值GetAll 根据传入的多个 key 获取多条记录的值Remove 根据传入的 key 移除一条记录RemoveAll 根据传入的多个 key 移除多条记录Replace 根据传入的 key 覆盖一条记录的值,当key 不存在不会添加Set 根据传入的 key 修改一条记录的值,当key 不存在则添加SetAll 根据传入的多个 key 覆盖多条记录Increment Decrement 特别说明,比如添加的

5、主要方法包括两个重载,一个多了个DateTime类型参数,一个多了 TimeSpan类型的参数。这两个都是缓存失效的时间( 相当于缓存依赖里的绝对过期时间)。DateTime失效点:到达该时间点,立即失效;TimeSpan失效点:经过该时间段,立即失效;简单示例:public ActionResult Index() RedisClientManagerConfig RedisConfig = new RedisClientManagerConfig(); RedisConfig.AutoStart = true ; RedisConfig.MaxReadPoolSize = 60; Redi

6、sConfig.MaxWritePoolSize = 60; PooledRedisClientManager prcm = new PooledRedisClientManager ( new List() “127.0.0.1“ , new List() “127.0.0.1“ , RedisConfig); using ( IRedisClient RClient = prcm.GetClient() RClient.Add(“c1“ , “缓存 1“); RClient.Set(“c1“ , “缓存 2“); RClient.Replace(“c1“ , “ 缓存 3“); Respo

7、nse.Write(RClient.Get(“c1“ ); RClient.Remove(“c1“ ); Response.Write(RClient.Get(“c1“ ) = null ); return Content( “ ); 2 、简单功能当然,除了实现ICacheClient接口的功能外,对于基本操作,实际上也还有很多功能方法说明AppendToValue 根据 Key将参数 value 追加到原有值的结尾ContainsKey 判断 Key在本数据库内是否已被使用(包括各种 类型、内置集合等等 ) GetAllKeys 获取所有的 Keys集合DecrementValue 根据指

8、定的 Key,将值减 1( 仅整型有效 ) DecrementValueBy 根据指定的 Key,将值减去指定值 ( 仅整型有效 ) IncrementValue 根据指定的 Key,将值加 1( 仅整型有效 ) IncrementValueBy 根据指定的 Key,将值加上指定值 ( 仅整型有效 ) RenameKey 重命名一个 Key,值不变SearchKeys 从数据库中查找名称相等的Keys的集合,特殊模 式如 haello,仅英文有效。GetRandomKey 随机获取一个已经被使用的Key GetValue 根据 Key获取值,只对 string类型有效GetValues 根据输

9、入的多个 Key获取多个值,支持泛型GetTimeToLive 获取指定 Key的项距离失效点的TimeSpan GetSortedSetCount 获取已排序集合的项的数目,参数支持下标以及 score 筛选ExpireEntryAt 根据指定的 key 设置一项的到期时间 (DateTime)ExpireEntryIn 根据指定的 key 设置一项的到期时间 (TimeSpan )FlushDb 清除本数据库的所有数据FlushAll 清除所有数据库的所有数据Shutdown 停止所有客户端,保存,关闭Redis 服务Save 保存数据 DB文件到硬盘SaveAsync 异步保存Rewri

10、teAppendOnlyFileAsync 只在异步情况下将数据追加到服务器文件WriteAll PublishMessage 将 Message发送到指定的频道StoreObject GetValuesMap 以键值对的方式返回值类型相同的多条数据,支 持泛型与返回字符串。字符串SetEntry 根据 Key修改一个值,存在则覆盖。(只能设置 字符串)SetEntryIfNotExists 根据 Key设置一个值, 仅仅当 Key不存在时有效, 如 Key已存在则不修改 ( 只支持字符串 ) SetEntryIfNotExists 根据 Key设置一个值,返回旧值。GetEntryType

11、根据 Key获取当前存储的值是什么类型:None = 0 String = 1 List = 2 Set = 3 SortedSet = 4 Hash = 5 3 、内置集合比如, IRedisClient支持在内部维护如下集合类型的数据: List 排序的 List(.Net 4.0后的 SortedSet) HashSet 关于如下4 种类型数据的操作:方法说明AddItemToList 添加一个项到内部的 List AddItemToSet 添加一个项到内部的 HashSet AddItemToSortedSet 添加一个项到内部的排序 List ,其中重载方法多 了个 score :排

12、序值。优先 按照 score 从小-大排序, 否则按值小到大排序AddRangeToList 一次过将参数中的List 中的多个值添加入内部的 List AddRangeToSet 一次过将参数中的 HashSet 中的多个值添 加入内部的 HashSet AddRangeToSortedSet 一次过将参数中的List 中的多个值添加到内部 List , 重载方法的 score 表示排序值。GetAllItemsFromList 获取指定 ListId的内部 List 的所有值GetAllItemsFromSet 获取指定 SetId 的内部 HashSet 的所有值GetAllItemsF

13、romSortedSet 获取指定 ListId的内部已 排序 List 的所有值GetAllItemsFromSortedSetDesc 获取指定 ListId的内部已 排序 List 的所有值,不 过获取的值是倒序排列后 的。GetRangeFromList 获取指定 ListId的内部 List 中指定下标范围的 数据GetRangeFromSortedList 获取指定 ListId的内部已 排序 List 中指定下标范 围的数据GetRangeFromSortedSet 获取指定 SetId 的内部 HashSet 中指定下标范围的数据GetRangeFromSortedSetByH

14、ighestScore 获取指定 SetId 的内部 HashSet 中按照 score 由高-低排序后的分值范 围的数据,并且支持skip 、 take GetRangeFromSortedSetByLowestScore 同上,只不过是按 score 分 值由低 -高取一定范围内 的数据GetRangeFromSortedSetDesc 按倒序获取内部 HashSet 的指定下标范 围内的数据GetRangeWithScoresFromSortedSet 与 From相同,只不过获取 的是键值对, 数据中带分值 score GetRangeWithScoresFromSortedSetBy

15、HighestScore 同上GetRangeWithScoresFromSortedSetByLowestScore 同上GetRangeWithScoresFromSortedSetDesc 同上GetAllWithScoresFromSortedSet 获取指定 ListId的已排序 的内部 List 与其 score GetSortedItemsFromList 从指定 ListId的 List 中获取按指定排序的集合, 支持 Skip,Take GetSortedEntryValues 从指定 ListId的 List 中获取经过排序指定开始 位置与个数的项RemoveAllFrom

16、List 移除指定 ListId的内部 List RemoveItemFromList 移除指定 ListId的内部 List 中第二个参数值相 等的那一项RemoveItemFromSet 从指定 SetId 的内部 HashSet 中移除与第二 个参数值相等的那一项RemoveItemFromSortedSet 从指定 ListId中已排序的 内部 List 中移除值相等 的那一项RemoveRangeFromSortedSet 从指定 ListId已排序的 List 中移除指定下标范围的项RemoveRangeFromSortedSetByScore 从指定 ListId已排序的 List 中移除指定 score 范围的项RemoveStartFromList 从指定 ListId移除开头那 一项RemoveEndFromList 从指定 ListId移除末尾那 项BlockingRemoveStartFromList 阻塞地从指定 ListId移除 开头那一项BlockingR

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号