Hi all, 來到第25天,昨天將Redis Service 打包成 SDK 出去,今天來個輕鬆地就來把SDK apply上專案吧
安裝玩 nuget 依賴後,就可以來這邊做服務的註冊。
builder.Services.UseRedisSdk();
接著原先使用 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上專案吧
安裝玩 nuget 依賴後,就可以來這邊做服務的註冊。
builder.Services.UseRedisSdk();
接著原先使用 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部屬。