.netcore 使用redis


我們需要添加一個Redis包:Microsoft.Extensions.Caching.Redis,這是官方的

1.在appsettings.json添加配置,如下圖:

說明:

CacheProvider: ConnectionString   --- Redis連接       

          InstanceName     ---Redis實例名稱   

 2.在startup添加redis服務,如下圖

3.緩存接口 ICacheService

 

public interface ICacheService
{
/// <summary>
/// 獲取緩存
/// </summary>
/// <param name="key">緩存key</param>
/// <returns></returns>
string Get(string key);
/// <summary>
///
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
string GetString(string key);
/// <summary>
///
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
void AddString(string key, string value);
/// <summary>
/// 添加緩存
/// </summary>
/// <param name="key">緩存key</param>
/// <param name="value">緩存值</param>
/// <param name="ExpirationTime">絕對過期時間(分鍾)</param>
void Add(string key, string value, int ExpirationTime = 20);
/// <summary>
/// 移除緩存
/// </summary>
/// <param name="key"></param>
void Remove(string key);
/// <summary>
/// 更新緩存
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <param name="ExpirationTime"></param>
void Replace(string key, string value, int ExpirationTime = 20);

4.實現接口 ICacheService

public class RedisCacheService:ICacheService
{
private RedisCache _redisCache = null;
public RedisCacheService(RedisCacheOptions options)
{
_redisCache = new RedisCache(options);
}
/// <summary>
/// 獲取緩存
/// </summary>
/// <param name="key">緩存key</param>
/// <returns></returns>
public string Get(string key)
{
try
{
if (!string.IsNullOrEmpty(key))
{
return Encoding.UTF8.GetString(_redisCache.Get(key));
}
else
{
return string.Empty;
}
}
catch
{
return null;
}
}
/// <summary>
/// 添加緩存
/// </summary>
/// <param name="key">緩存key</param>
/// <param name="value">緩存值</param>
/// <param name="ExpirationTime">絕對過期時間(分鍾)</param>
public void Add(string key,string value,int ExpirationTime=20)
{
if (!string.IsNullOrEmpty(key))
{
_redisCache.Set(key, Encoding.UTF8.GetBytes(value), new DistributedCacheEntryOptions()
{
AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(ExpirationTime)
});
}
}

public void AddString(string key, string value)
{
_redisCache.SetString(key,value);
}

public string GetString(string key)

{
return _redisCache.GetString(key);
}

/// <summary>
/// 移除緩存
/// </summary>
/// <param name="key">緩存key</param>
public void Remove(string key)
{
if (!string.IsNullOrEmpty(key))
{
_redisCache.Remove(key);
}
}
/// <summary>
/// 更新緩存
/// </summary>
/// <param name="key">緩存key</param>
/// <param name="value">緩存值</param>
/// <param name="ExpirationTime"></param>
public void Replace(string key, string value, int ExpirationTime = 20)
{
if (!string.IsNullOrEmpty(key))
{
_redisCache.Remove(key);
_redisCache.Set(key, Encoding.UTF8.GetBytes(value), new DistributedCacheEntryOptions()
{
AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(ExpirationTime)
});
}
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM