iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0

Hi all, 來到第25天,昨天將Redis Service 打包成 SDK 出去,今天來個輕鬆地就來把SDK apply上專案吧

Programs

安裝玩 nuget 依賴後,就可以來這邊做服務的註冊。

builder.Services.UseRedisSdk();

ChainCacheService

接著原先使用 redis 的 ChainCacheService 就會變成這樣

public class ChainCacheService(IChainService chainService, RedisManager redisManager)
    : IChainService
{
    public async Task<BlockDomain> GetBlockById(int id)
    {
        return await redisManager.GetOrCreate($"block:{id}", async () => await chainService.GetBlockById(id));
    }

    public async Task<BlockDomain> GenerateNewBlock(GenerateNewBlockDto dto)
    {
        return await redisManager.GetOrCreate($"block:{(await chainService.GenerateNewBlock(dto)).Id}", async () => await chainService.GenerateNewBlock(dto));
    }

    public async Task<BlockDomain> EditBlock(EditBlockDto editBlockDto)
    {
        var blockDomain = await chainService.EditBlock(editBlockDto);
        redisManager.Update($"block:{blockDomain.Id}", blockDomain);
        return blockDomain;
    }
}

以上呢,就是把 Redis 封裝成 SDK 後,使用端使用上的樣子。 那今天就先到這啦。

明天可以來研究研究 k8s部屬。

Hi all, 來到第25天 昨天將Redis Service 打包成 SDK 出去,今天就來把她 apply上專案吧

Programs.cs

安裝玩 nuget 依賴後,就可以來這邊做服務的註冊。

builder.Services.UseRedisSdk();

ChainCacheService

接著原先使用 redis 的 ChainCacheService 就會變成這樣

public class ChainCacheService(IChainService chainService, RedisManager redisManager)
    : IChainService
{
    public async Task<BlockDomain> GetBlockById(int id)
    {
        return await redisManager.GetOrCreate($"block:{id}", async () => await chainService.GetBlockById(id));
    }

    public async Task<BlockDomain> GenerateNewBlock(GenerateNewBlockDto dto)
    {
        return await redisManager.GetOrCreate($"block:{(await chainService.GenerateNewBlock(dto)).Id}", async () => await chainService.GenerateNewBlock(dto));
    }

    public async Task<BlockDomain> EditBlock(EditBlockDto editBlockDto)
    {
        var blockDomain = await chainService.EditBlock(editBlockDto);
        redisManager.Update($"block:{blockDomain.Id}", blockDomain);
        return blockDomain;
    }
}

以上呢,就是把 Redis 封裝成 SDK 後,使用端使用上的樣子。 那今天就先到這啦。

明天可以來研究研究 k8s部屬。


上一篇
Day24 Redis SDK
下一篇
Day26 Introduce HangFire
系列文
Side-Project:: 為自己打造個可編輯的區塊鏈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言