130 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C#
		
	
	
	
using StackExchange.Redis;
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
using System.Web;
 | 
						|
 | 
						|
namespace WebAPI.Common
 | 
						|
{
 | 
						|
    /// <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);
 | 
						|
    }
 | 
						|
} |