本文主要介绍了缓存的概念,以及如何在服务器内存中存储内容。今天的目标是利用IDistributedCache来做一些分布式缓存,这样我们就可以横向扩展我们的web应用程序。
在本教程中,我将使用Redis作为缓存。Redis是一个可靠的快速内存缓存,可以存储多种类型的对象。Redis正在被Twitter, Github, Instagram, Stackoverflow等巨头使用。
你可以在https://github.com/sahan91/DistributedCacheAspNetCoreRedis找到示例代码。
这是我们实现后的一个快照。
用户请求一个User对象。
App server检查缓存中是否已经有用户,如果存在则返回对象。
App server通过HTTP调用来检索用户列表。
Users service将用户列表返回给App server。
App server将用户列表发送到分布式(Redis)缓存。
App server获得缓存的版本,直到它过期(TTL)。
用户获取缓存的User对象。
我们称其为分布式缓存的主要原因是,它位于应用服务器之外(与传统的内存缓存相反),如果需要的话,我们可以灵活地水平扩展它(在云中操作时)。来看看在企业应用程序中是如何有用的。
IDistributedCache接口为我们提供了一组操作缓存的方法。这里总结了几种不同的方法。
搭建一个示例应用程序
我们将用ASP.NET Core 5创建一个Web MVC应用程序。
dotnet new mvc -n DistributedCachedotnet new slndotnet sln add DistributedCache