C# 社交网络的内存缓存
各位 我正在从头开始创建一个社交网络,它是开源的,你可以找到代码 您可以在生产环境中看到它 它托管在Azure(应用服务),我使用AspNet Core Mvc作为基础,MongoDb Atlas作为持久性 我的问题是,我几乎需要整个应用程序中的用户提供一些信息,例如用户全名。因此,始终从数据库获取这些数据会占用大量资源,并降低整个解决方案的速度 例如: UserContentComment文档保存用户ID(Guid),但在呈现注释时,必须显示用户当前的全名,最近的配置文件更改必须反映整个平台 我曾考虑过使用内存缓存解决此问题,Microsoft推荐两种选择:C# 社交网络的内存缓存,c#,asp.net-mvc,mongodb,asp.net-core,redis,C#,Asp.net Mvc,Mongodb,Asp.net Core,Redis,各位 我正在从头开始创建一个社交网络,它是开源的,你可以找到代码 您可以在生产环境中看到它 它托管在Azure(应用服务),我使用AspNet Core Mvc作为基础,MongoDb Atlas作为持久性 我的问题是,我几乎需要整个应用程序中的用户提供一些信息,例如用户全名。因此,始终从数据库获取这些数据会占用大量资源,并降低整个解决方案的速度 例如: UserContentComment文档保存用户ID(Guid),但在呈现注释时,必须显示用户当前的全名,最近的配置文件更改必须反映整个平台
- 伊梅莫里奇李>
- 分布式缓存(SQL或Redis)李>
{ Key:"7df21e7a-5dba-4635-bc39-08d7493f75dc_fullname", Value: "John Doe"}
{ Key:"7df21e7a-5dba-4635-bc39-08d7493f75dc_age", Value: "25"}
{ Key:"7df21e7a-5dba-4635-bc39-08d7493f75dc_location", Value: "Atlantis"}
或者我可以存储整个对象
{ Key:"7df21e7a-5dba-4635-bc39-08d7493f75dc", Value: johnprofile}
以这种方式存储此类信息是一种良好的做法吗
你们有什么改进的建议吗
谢谢大家的帮助 如果您只想缓存登录用户上的数据,请使用会话否则,如果您需要能够提取任何用户的全名,可以使用IMemoryCache缓存用户上的数据,但我会坚持使用注入接口,以便在以后需要时用另一个实现(如redis)替换它。