分布式缓存
要利用分布式缓存,你必须引用其中一个可用的实现:
例如,你将注册 Redis 实现如下:
public void ConfigureServices(IServiceCollection services)
{
services.AddDistributedRedisCache(options =>
{
options.Configuration = "ServerAdress";
options.InstanceName = "InstanceName";
});
}
在需要的地方需要 IDistributedCache
依赖:
public class BooksController {
private IDistributedCache distributedCache;
public BooksController(IDistributedCache distributedCache) {
this.distributedCache = distributedCache;
}
[HttpGet]
public async Task<Books[]> GetAllBooks() {
var serialized = this.distributedCache.GetStringAsync($"allbooks");
Books[] books = null;
if (string.IsNullOrEmpty(serialized)) {
books = await Books.FetchAllAsync();
this.distributedCache.SetStringAsync($"allbooks", JsonConvert.SerializeObject(books));
} else {
books = JsonConvert.DeserializeObject<Books[]>(serialized);
}
return books;
}
}