25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

119 lines
4.0 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. namespace Learun.Cache.Base
  4. {
  5. /// <summary>
  6. /// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架
  7. /// Copyright (c) 2013-2018 上海力软信息技术有限公司
  8. /// 创建人:力软-框架开发组
  9. /// 日 期:2017.03.06
  10. /// 描 述:定义缓存接口
  11. /// </summary>
  12. public interface ICache
  13. {
  14. #region Key-Value
  15. /// <summary>
  16. /// 读取缓存
  17. /// </summary>
  18. /// <param name="cacheKey">键</param>
  19. /// <param name="dbId">缓存库编码</param>
  20. /// <returns></returns>
  21. T Read<T>(string cacheKey, int dbId = 0) where T : class;
  22. /// <summary>
  23. /// 写入缓存
  24. /// </summary>
  25. /// <param name="value">对象数据</param>
  26. /// <param name="cacheKey">键</param>
  27. /// <param name="dbId">缓存库编码</param>
  28. void Write<T>(string cacheKey, T value, int dbId = 0) where T : class;
  29. /// <summary>
  30. /// 写入缓存
  31. /// </summary>
  32. /// <param name="value">对象数据</param>
  33. /// <param name="cacheKey">键</param>
  34. /// <param name="dbId">缓存库编码</param>
  35. /// <param name="timeSpan">到期时间</param>
  36. void Write<T>(string cacheKey, T value, TimeSpan timeSpan, int dbId = 0) where T : class;
  37. /// <summary>
  38. /// 移除指定数据缓存
  39. /// </summary>
  40. /// <param name="cacheKey">键</param>
  41. /// <param name="dbId">缓存库编码</param>
  42. void Remove(string cacheKey, int dbId = 0);
  43. /// <summary>
  44. /// 移除全部缓存
  45. /// </summary>
  46. /// <param name="dbId">缓存库编码</param>
  47. void RemoveAll(int dbId = 0);
  48. #endregion
  49. #region List
  50. #region 同步方法
  51. /// <summary>
  52. /// 移除指定ListId的内部List的值
  53. /// </summary>
  54. /// <param name="cacheKey"></param>
  55. /// <param name="value"></param>
  56. /// <param name="dbId">缓存库编码</param>
  57. void ListRemove<T>(string cacheKey, T value, int dbId = 0) where T : class;
  58. /// <summary>
  59. /// 获取指定key的List
  60. /// </summary>
  61. /// <param name="cacheKey"></param>
  62. /// <param name="dbId">缓存库编码</param>
  63. /// <returns></returns>
  64. List<T> ListRange<T>(string cacheKey, int dbId = 0) where T : class;
  65. /// <summary>
  66. /// 入队
  67. /// </summary>
  68. /// <param name="cacheKey"></param>
  69. /// <param name="value"></param>
  70. /// <param name="dbId">缓存库编码</param>
  71. void ListRightPush<T>(string cacheKey, T value, int dbId = 0) where T : class;
  72. /// <summary>
  73. /// 出队
  74. /// </summary>
  75. /// <typeparam name="T"></typeparam>
  76. /// <param name="cacheKey"></param>
  77. /// <param name="dbId">缓存库编码</param>
  78. /// <returns></returns>
  79. T ListRightPop<T>(string cacheKey, int dbId = 0) where T : class;
  80. /// <summary>
  81. /// 入栈
  82. /// </summary>
  83. /// <typeparam name="T"></typeparam>
  84. /// <param name="cacheKey"></param>
  85. /// <param name="value"></param>
  86. /// <param name="dbId">缓存库编码</param>
  87. void ListLeftPush<T>(string cacheKey, T value, int dbId = 0) where T : class;
  88. /// <summary>
  89. /// 出栈
  90. /// </summary>
  91. /// <typeparam name="T"></typeparam>
  92. /// <param name="cacheKey"></param>
  93. /// <param name="dbId">缓存库编码</param>
  94. /// <returns></returns>
  95. T ListLeftPop<T>(string cacheKey, int dbId = 0) where T : class;
  96. /// <summary>
  97. /// 获取集合中的数量
  98. /// </summary>
  99. /// <param name="cacheKey"></param>
  100. /// <param name="dbId">缓存库编码</param>
  101. /// <returns></returns>
  102. long ListLength(string cacheKey, int dbId = 0);
  103. #endregion 同步方法
  104. #endregion List
  105. }
  106. }