分布式緩存急速入門

安裝、部署

首先在服務(wù)器安裝redis,我使用的是免安裝版本

cd到安裝目錄,執(zhí)行命令(注意一定要指定配置文件)

redis-server.exe redis.windows.conf

同時(shí)本地也安裝redis,cd到安裝目錄,連接服務(wù)器redis

redis-cli -h <ip地址> -p 6379

這時(shí)候可能會(huì)報(bào)錯(cuò),提示:No connection is available to service this operation: EVAL。遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接

這時(shí)候修改服務(wù)器上啟動(dòng)的對(duì)應(yīng)配置文件(redis.windows.conf)將protected-mode設(shè)置為no

bind 0.0.0.0
protected-mode no

bind地址,原來(lái)是127.0.0.1,改為 bind 0.0.0.0 這樣的話其它的ip地址也可以連接過(guò)來(lái)了。

image.png

asp.net core中使用

首先安裝nuget包:Microsoft.Extensions.Caching.Redis

然后往容器注入

services.AddDistributedRedisCache(options =>
{
    options.Configuration ="{ip地址:端口號(hào)},abortconnect=false";
    options.InstanceName = "RedisDemo";
});

在控制器中的構(gòu)造函數(shù)注入

private readonly IDistributedCache _distributedCache;

public HomeController( IDistributedCache distributedCache)
{
    _distributedCache = distributedCache;
}

在方法中獲取key,如果沒(méi)有,就傳入一個(gè)

 public IActionResult Index()
{
    var name = _distributedCache.Get("name-key");
    if (name == null)
    {
        var obj = new Dictionary<string, string>
        {
            ["firstName"] = "Curry",
            ["lastName"] = "Zhang"
        };
        var str = JsonConvert.SerializeObject(obj);
        byte[] encoded = Encoding.UTF8.GetBytes(str);
        
        //var options = new DistributedCacheEntryOptions();
        //設(shè)置30秒過(guò)期
        var options =new DistributedCacheEntryOptions().SetSlidingExpiration(TimSan.FromSeconds(30));
        
        _distributedCache.Set("name-key", encoded, options);
        return View(obj);
    }
    else
    {
        var str = Encoding.UTF8.GetString(name);
        var obj=JsonConvert.DeserializeObject<Dictionary<string,string>>(sr);
        return View(obj);
    }
}

修改下視圖,展示出來(lái)

@model Dictionary<string, string>
@{
    ViewData["Title"] = "Home Page";
}

<div class="text-center">
    <h1 class="display-4">Welcome</h1>
    @foreach (var kv in Model)
    {
        <h3>
            @kv.Key:@kv.Value
        </h3>
    }

</div>

學(xué)習(xí)這部分知識(shí)主要受楊旭大佬的視頻影響,感謝,附上楊旭老師的博客和B站鏈接:博客、B站

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容