175 lines
4.7 KiB
C#
175 lines
4.7 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using System.Web;
|
|||
|
|
using System.Web.Caching;
|
|||
|
|
using System.Collections;
|
|||
|
|
|
|||
|
|
|
|||
|
|
namespace MyCode.Project.Infrastructure.Cache
|
|||
|
|
{
|
|||
|
|
public class SystemCache:IMyCodeCacheService
|
|||
|
|
{
|
|||
|
|
private static System.Web.Caching.Cache cache;
|
|||
|
|
|
|||
|
|
public SystemCache() {
|
|||
|
|
if (cache == null)
|
|||
|
|
{
|
|||
|
|
cache = HttpRuntime.Cache;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#region Set(设置绝对过期时间)
|
|||
|
|
public void Set(string key, object cache_object, TimeSpan? cacheTime = null) {
|
|||
|
|
|
|||
|
|
if (cacheTime == null || cacheTime.Value == TimeSpan.Zero) { cacheTime = new TimeSpan(0, 0, 30); }
|
|||
|
|
|
|||
|
|
//相对时间过期
|
|||
|
|
//cache.Insert(key,cache_object,null, System.Web.Caching.Cache.NoAbsoluteExpiration,expiration,priority,null);
|
|||
|
|
//绝对时间过期
|
|||
|
|
//cache.Insert(key, cache_object, null,DateTime.Now.addti,expiration, System.Web.Caching.Cache.NoSlidingExpiration);
|
|||
|
|
//var second = expiration.TotalSeconds;
|
|||
|
|
if (cache_object == null) { return; }
|
|||
|
|
|
|||
|
|
cache.Insert(key, cache_object, null, DateTime.Now.AddSeconds(cacheTime.Value.TotalSeconds), System.Web.Caching.Cache.NoSlidingExpiration);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region Get(根据key得到缓存值)
|
|||
|
|
public object Get(string key) {
|
|||
|
|
return cache.Get(key);
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region Get(获取一个具体的对象)
|
|||
|
|
public T Get<T>(string key)
|
|||
|
|
{
|
|||
|
|
var obj = Get(key);
|
|||
|
|
|
|||
|
|
return (T)obj;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region Delete(按Key删除)
|
|||
|
|
public void Delete(string key) {
|
|||
|
|
if (Exists(key)) {
|
|||
|
|
cache.Remove(key);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region Exists(判断缓存是否存在)
|
|||
|
|
public bool Exists(string key)
|
|||
|
|
{
|
|||
|
|
if (cache[key] != null)
|
|||
|
|
{
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
else {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region GetCacheKeys(取得缓存所有Key)
|
|||
|
|
public List<string> GetCacheKeys()
|
|||
|
|
{
|
|||
|
|
List<string> keys = new List<string>();
|
|||
|
|
IDictionaryEnumerator ca = cache.GetEnumerator();
|
|||
|
|
while (ca.MoveNext())
|
|||
|
|
{
|
|||
|
|
keys.Add(ca.Key.ToString());
|
|||
|
|
}
|
|||
|
|
return keys;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region Push(放入队列)
|
|||
|
|
/// <summary>
|
|||
|
|
/// 放入队列
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="key"></param>
|
|||
|
|
/// <param name="data"></param>
|
|||
|
|
public void Push(string key, object data)
|
|||
|
|
{
|
|||
|
|
throw new NotImplementedException();
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region ListLen(返回列表长度)
|
|||
|
|
/// <summary>
|
|||
|
|
/// 返回列表长度
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="key"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public long ListLen(string key)
|
|||
|
|
{
|
|||
|
|
throw new NotImplementedException();
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region Popup(获取第一条数据,并删除)
|
|||
|
|
/// <summary>
|
|||
|
|
/// Popup(获取第一条数据,并删除)
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="key"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public object Popup(string key)
|
|||
|
|
{
|
|||
|
|
throw new NotImplementedException();
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region GetNewId(得到新的id)
|
|||
|
|
/// <summary>
|
|||
|
|
/// 得到新的id
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="key"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public long GetNewId()
|
|||
|
|
{
|
|||
|
|
throw new NotImplementedException();
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region Incr(自增1,返回自增后的值)
|
|||
|
|
/// <summary>
|
|||
|
|
/// 自增1,返回自增后的值
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="key"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public long Incr(string key,long value = 1)
|
|||
|
|
{
|
|||
|
|
throw new NotImplementedException();
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region SetIncr(初始化原子性的功能)
|
|||
|
|
/// <summary>
|
|||
|
|
/// 初始化原子性的功能
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="key"></param>
|
|||
|
|
/// <param name="data"></param>
|
|||
|
|
public void SetIncr(string key, long data)
|
|||
|
|
{
|
|||
|
|
throw new NotImplementedException();
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region GetIncr(得到Incr值)
|
|||
|
|
/// <summary>
|
|||
|
|
/// 得到Incr值
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="key"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public object GetIncr(string key)
|
|||
|
|
{
|
|||
|
|
throw new NotImplementedException();
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
}
|