127 lines
4.5 KiB
C#
127 lines
4.5 KiB
C#
using System;
|
|
using StackExchange.Redis;
|
|
|
|
namespace BLL
|
|
{
|
|
/// <summary>
|
|
/// 接口
|
|
/// </summary>
|
|
public interface ICache
|
|
{
|
|
/// <summary>
|
|
/// 缓存过期时间
|
|
/// </summary>
|
|
int TimeOut { set; get; }
|
|
/// <summary>
|
|
/// 获得指定键的缓存值
|
|
/// </summary>
|
|
/// <param name="key">缓存键</param>
|
|
/// <returns>缓存值</returns>
|
|
object Get(string key);
|
|
/// <summary>
|
|
/// 获得指定键的缓存值
|
|
/// </summary>
|
|
T Get<T>(string key);
|
|
/// <summary>
|
|
/// 从缓存中移除指定键的缓存值
|
|
/// </summary>
|
|
/// <param name="key">缓存键</param>
|
|
void Remove(string key);
|
|
/// <summary>
|
|
/// 清空所有缓存对象
|
|
/// </summary>
|
|
//void Clear();
|
|
/// <summary>
|
|
/// 将指定键的对象添加到缓存中
|
|
/// </summary>
|
|
/// <param name="key">缓存键</param>
|
|
/// <param name="data">缓存值</param>
|
|
void Insert(string key, object data);
|
|
/// <summary>
|
|
/// 将指定键的对象添加到缓存中
|
|
/// </summary>
|
|
/// <param name="key">缓存键</param>
|
|
/// <param name="data">缓存值</param>
|
|
void Insert<T>(string key, T data);
|
|
/// <summary>
|
|
/// 将指定键的对象添加到缓存中,并指定过期时间
|
|
/// </summary>
|
|
/// <param name="key">缓存键</param>
|
|
/// <param name="data">缓存值</param>
|
|
/// <param name="cacheTime">缓存过期时间(秒钟)</param>
|
|
void Insert(string key, object data, int cacheTime);
|
|
|
|
/// <summary>
|
|
/// 将指定键的对象添加到缓存中,并指定过期时间
|
|
/// </summary>
|
|
/// <param name="key">缓存键</param>
|
|
/// <param name="data">缓存值</param>
|
|
/// <param name="cacheTime">缓存过期时间(秒钟)</param>
|
|
void Insert<T>(string key, T data, int cacheTime);
|
|
/// <summary>
|
|
/// 将指定键的对象添加到缓存中,并指定过期时间
|
|
/// </summary>
|
|
/// <param name="key">缓存键</param>
|
|
/// <param name="data">缓存值</param>
|
|
/// <param name="cacheTime">缓存过期时间</param>
|
|
void Insert(string key, object data, DateTime cacheTime);
|
|
/// <summary>
|
|
/// 将指定键的对象添加到缓存中,并指定过期时间
|
|
/// </summary>
|
|
/// <param name="key">缓存键</param>
|
|
/// <param name="data">缓存值</param>
|
|
/// <param name="cacheTime">缓存过期时间</param>
|
|
void Insert<T>(string key, T data, DateTime cacheTime);
|
|
/// <summary>
|
|
/// 判断key是否存在
|
|
/// </summary>
|
|
bool Exists(string key);
|
|
/// <summary>
|
|
/// 右侧入队
|
|
/// </summary>
|
|
/// <param name="queueName"></param>
|
|
/// <param name="redisValue"></param>
|
|
/// <returns></returns>
|
|
long EnqueueListRightPush(RedisKey queueName, RedisValue redisValue);
|
|
/// <summary>
|
|
/// 左侧入队
|
|
/// </summary>
|
|
/// <param name="queueName"></param>
|
|
/// <param name="redisvalue"></param>
|
|
/// <returns></returns>
|
|
long EnqueueListLeftPush(RedisKey queueName, RedisValue redisvalue);
|
|
/// <summary>
|
|
/// 获取队列长度
|
|
/// </summary>
|
|
/// <param name="queueName"></param>
|
|
/// <returns></returns>
|
|
long EnqueueListLength(RedisKey queueName);
|
|
/// <summary>
|
|
/// 左侧出队
|
|
/// </summary>
|
|
/// <param name="queueName"></param>
|
|
/// <returns></returns>
|
|
string DequeueListPopLeft(RedisKey queueName);
|
|
/// <summary>
|
|
/// 右侧出队
|
|
/// </summary>
|
|
/// <param name="queueName"></param>
|
|
/// <returns></returns>
|
|
string DequeueListPopRight(RedisKey queueName);
|
|
/// <summary>
|
|
/// 分布式加锁
|
|
/// </summary>
|
|
/// <param name="key">键</param>
|
|
/// <param name="data">值</param>
|
|
/// <param name="seconds">过期时间</param>
|
|
/// <returns></returns>
|
|
bool LockTake(string key, string data, TimeSpan seconds, int db = 0);
|
|
/// <summary>
|
|
/// 解锁
|
|
/// </summary>
|
|
/// <param name="key">键</param>
|
|
/// <param name="data">值</param>
|
|
/// <returns></returns>
|
|
bool LockRelease(string key, string data, int db = -1);
|
|
}
|
|
} |