之后我們看下Redis的方法,畢竟調(diào)用第三方都是看看然后根據(jù)自己需要裹一下。

也是先要初始化配置信息,然后創(chuàng)建實(shí)體對象,調(diào)用方法,這里說明下,默認(rèn)的value值是byte[],當(dāng)然官方也有擴(kuò)展方法。

好了,看完了方法,我們來開始Util吧。

RedisUtil

首先,我們還是要先做配置信息,前面已經(jīng)在appsettings寫過配置信息,這里直接在AprilConfig中添加上。

private static string _IsOpenCache = string.Empty;
/// <summary>
/// 是否使用Redis
/// </summary>
public static bool IsOpenCache
{
get
{
if (string.IsNullOrEmpty(_IsOpenCache))
{
_IsOpenCache = Configuration["Redis:IsOpenRedis"];
}
if (_IsOpenCache.ToLower() == "true")
{
return true;
}
return false;
}
}

private static string _RedisConnectionString = string.Empty;
/// <summary>
/// Redis默認(rèn)連接串
/// </summary>
public static string RedisConnectionString
{
get{
if (string.IsNullOrEmpty(_RedisConnectionString))
{
_RedisConnectionString = Configuration["Redis:ConnectionString"];
}
return _RedisConnectionString;
}
}

配置信息設(shè)置完成之后,開始初始化Redis的方法。

private static RedisCache _redisCache = null;
private static RedisCacheOptions options = null;
/// <summary>
/// 初始化Redis
/// </summary>
public static void InitRedis()
{
if (AprilConfig.IsOpenCache)
{
_redisCache = new RedisCache(GetOptions());
}
}
/// <summary>
/// 獲取配置項(xiàng)信息
/// </summary>
/// <returns></returns>
protected static RedisCacheOptions GetOptions()
{
options = new RedisCacheOptions();
options.Configuration = AprilConfig.RedisConnectionString;
options.InstanceName = "April.Redis";
return options;
}
/// <summary>
/// 添加數(shù)據(jù)
/// </summary>
/// <param name="key">鍵</param>
/// <param name="value">值</param>
/// <param name="ExprireTime">過期時(shí)間</param>
public static void Add(string key, object value, int ExprireTime = 10)
{
if (string.IsNullOrEmpty(key))
{
return;
}
string strValue = string.Empty;
try
{
strValue = JsonConvert.SerializeObject(value);
}
catch (Exception ex)
{
LogUtil.Error($"Redis.Add轉(zhuǎn)換失敗:{ex.Message}");
}
if (!string.IsNullOrEmpty(strValue))
{
_redisCache.SetString(key, strValue, new Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions()
{
AbsoluteExpiration = DateTime.Now.AddMinutes(ExprireTime)
});
}
}
/// <summary>
/// 獲取數(shù)據(jù)(對象)
/// </summary>
/// <typeparam name="T">對象類型</typeparam>
/// <param name="key">鍵</param>
/// <returns></returns>
public static T Get<T>(string key)
{
string value = Get(key);
if (string.IsNullOrEmpty(value))
{
return default(T);
}
T obj = default(T);
try
{
obj = JsonConvert.DeserializeObject<T>(value);
}
catch (Exception ex)
{
LogUtil.Error($"Redis.Get轉(zhuǎn)換失敗:{ex.Message},數(shù)據(jù):{value}");
}
return obj;
}

/// <summary>
/// 移除數(shù)據(jù)
///</summary>
/// <param name="key">鍵</param>
public static void Remove(string key)
{
if (!string.IsNullOrEmpty(key))
{
_redisCache.Remove(key);
}
}
/// <summary>
/// 重置數(shù)據(jù)
/// </summary>
/// <param name="key">鍵</param>
/// <param name="value">值</param>
/// <param name="expireTime">過期時(shí)間</param>
public static void Replace(string key, object value, int expireTime = 10)
{
if (!string.IsNullOrEmpty(key))
{
Remove(key);
Add(key, value, expireTime);
}
}

具體使用的方法,這里不多寫了代碼地址:

https://github.com/AprilBlank/April.WebApi,感覺代碼貼的多了,自己也習(xí)慣了復(fù)制粘貼,看一個(gè)封裝好的方法,就要去看他的源碼(如果只是用的話就算了),這樣對方法的使用以及自身的業(yè)務(wù)需要封裝會(huì)有很好的幫助,畢竟會(huì)用是第一步,會(huì)改是第二步,封裝是第三步,自己寫那就是最終級了(這句純屬自勉)。

測試

好了,寫完之后,習(xí)慣來一遍測試,不想自己整理的東西最終還是不能用,千篇一律不可怕,可怕的是不知道最終的效果。

新增

獲取

覆蓋

ps:說是覆蓋,其實(shí)就是刪除然后新增-,-|||

刪除

小結(jié)

寫到這里基本上都結(jié)束了,簡單的說明了Redis的使用,后續(xù)還是會(huì)不斷更新,比如那么多database,如果隨意切換,redis存儲(chǔ)之后會(huì)不會(huì)有什么其他問題等等,學(xué)以致用,用方知錯(cuò),錯(cuò)而能改,改了就行。

文章轉(zhuǎn)自微信公眾號@DotNet

上一篇:

.NET Core WebAPI 文件分片上傳與跨域請求處理

下一篇:

NET Core微服務(wù)之路:基于Ocelot的API網(wǎng)關(guān)Relay實(shí)現(xiàn)--RPC篇
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場景實(shí)測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對比試用API 限時(shí)免費(fèi)