126 lines
4.0 KiB
C#
126 lines
4.0 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
|
||
namespace Learun.Cache.Base
|
||
{
|
||
/// <summary>
|
||
/// 版 本 PIT-ADMS V7.0.3 敏捷开发框架
|
||
/// Copyright (c) 2013-2018 Hexagon PPM
|
||
/// 创建人:研发部
|
||
/// 日 期:2017.03.06
|
||
/// 描 述:定义缓存接口
|
||
/// </summary>
|
||
public interface ICache
|
||
{
|
||
/// <summary>
|
||
/// 查询redis里key的数据,如果没有就执行 dbQuery 里的sql查询,并写入一个新的key
|
||
/// </summary>
|
||
/// <typeparam name="T"></typeparam>
|
||
/// <param name="cacheKey"></param>
|
||
/// <param name="projId"></param>
|
||
/// <param name="dbQuery"></param>
|
||
/// <param name="expireTime"></param>
|
||
/// <param name="dbId"></param>
|
||
/// <returns></returns>
|
||
T GetRedisOrDBData<T>(string cacheKey, string projId, Func<T> dbQuery, TimeSpan? expireTime = null, int dbId = 0);
|
||
|
||
#region Key-Value
|
||
/// <summary>
|
||
/// 读取缓存
|
||
/// </summary>
|
||
/// <param name="cacheKey">键</param>
|
||
/// <returns></returns>
|
||
T Read<T>(string cacheKey, int dbId = 0) where T : class;
|
||
/// <summary>
|
||
/// 写入缓存
|
||
/// </summary>
|
||
/// <param name="value">对象数据</param>
|
||
/// <param name="cacheKey">键</param>
|
||
void Write<T>(string cacheKey, T value, int dbId = 0) where T : class;
|
||
/// <summary>
|
||
/// 写入缓存
|
||
/// </summary>
|
||
/// <param name="value">对象数据</param>
|
||
/// <param name="cacheKey">键</param>
|
||
/// <param name="expireTime">到期时间</param>
|
||
void Write<T>(string cacheKey, T value, TimeSpan timeSpan, int dbId = 0) where T : class;
|
||
/// <summary>
|
||
/// 移除指定数据缓存
|
||
/// </summary>
|
||
/// <param name="cacheKey">键</param>
|
||
void Remove(string cacheKey, int dbId = 0);
|
||
/// <summary>
|
||
/// sws用的
|
||
/// </summary>
|
||
/// <param name="cacheKey"></param>
|
||
/// <param name="projId"></param>
|
||
/// <param name="dbId"></param>
|
||
void Remove(string cacheKey, string projId, int dbId = 0);
|
||
/// <summary>
|
||
/// 移除全部缓存
|
||
/// </summary>
|
||
void RemoveAll(int dbId = 0);
|
||
#endregion
|
||
#region List
|
||
|
||
#region 同步方法
|
||
|
||
/// <summary>
|
||
/// 移除指定ListId的内部List的值
|
||
/// </summary>
|
||
/// <param name="key"></param>
|
||
/// <param name="value"></param>
|
||
void ListRemove<T>(string cacheKey, T value, int dbId = 0) where T : class;
|
||
|
||
/// <summary>
|
||
/// 获取指定key的List
|
||
/// </summary>
|
||
/// <param name="key"></param>
|
||
/// <returns></returns>
|
||
List<T> ListRange<T>(string cacheKey, int dbId = 0) where T : class;
|
||
|
||
/// <summary>
|
||
/// 入队
|
||
/// </summary>
|
||
/// <param name="key"></param>
|
||
/// <param name="value"></param>
|
||
void ListRightPush<T>(string cacheKey, T value, int dbId = 0) where T : class;
|
||
|
||
/// <summary>
|
||
/// 出队
|
||
/// </summary>
|
||
/// <typeparam name="T"></typeparam>
|
||
/// <param name="key"></param>
|
||
/// <returns></returns>
|
||
T ListRightPop<T>(string cacheKey, int dbId = 0) where T : class;
|
||
|
||
|
||
/// <summary>
|
||
/// 入栈
|
||
/// </summary>
|
||
/// <typeparam name="T"></typeparam>
|
||
/// <param name="key"></param>
|
||
/// <param name="value"></param>
|
||
void ListLeftPush<T>(string cacheKey, T value, int dbId = 0) where T : class;
|
||
|
||
/// <summary>
|
||
/// 出栈
|
||
/// </summary>
|
||
/// <typeparam name="T"></typeparam>
|
||
/// <param name="key"></param>
|
||
/// <returns></returns>
|
||
T ListLeftPop<T>(string cacheKey, int dbId = 0) where T : class;
|
||
|
||
/// <summary>
|
||
/// 获取集合中的数量
|
||
/// </summary>
|
||
/// <param name="key"></param>
|
||
/// <returns></returns>
|
||
long ListLength(string cacheKey, int dbId = 0);
|
||
|
||
#endregion 同步方法
|
||
|
||
#endregion List
|
||
}
|
||
}
|