43 lines
1.3 KiB
C#
43 lines
1.3 KiB
C#
using Microsoft.Extensions.Caching.Distributed;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Syc.Abp.Caching.Redis
|
|
{
|
|
public class CacheItem<T>
|
|
{
|
|
public CacheItem()
|
|
{
|
|
|
|
}
|
|
|
|
public CacheItem(T value, DistributedCacheEntryOptions options)
|
|
{
|
|
Value = value;
|
|
AbsoluteExpiration = options.AbsoluteExpiration;
|
|
AbsoluteExpirationRelativeToNow = options.AbsoluteExpirationRelativeToNow.HasValue ? new DateTimeOffset(DateTimeOffset.Now.Ticks + options.AbsoluteExpirationRelativeToNow.Value.Ticks, TimeSpan.Zero) : null;
|
|
SlidingExpiration = options.SlidingExpiration.HasValue ? (int)options.SlidingExpiration.Value.TotalSeconds : null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 绝对过期,到达预设时间就过期
|
|
/// </summary>
|
|
public DateTimeOffset? AbsoluteExpiration { get; set; }
|
|
|
|
/// <summary>
|
|
/// 相对当前时间绝对过期
|
|
/// </summary>
|
|
public DateTimeOffset? AbsoluteExpirationRelativeToNow { get; set; }
|
|
|
|
/// <summary>
|
|
/// 滑动过期
|
|
/// </summary>
|
|
public int? SlidingExpiration { get; set; }
|
|
|
|
public T? Value { get; set; }
|
|
}
|
|
}
|