【问题标题】:How to store persistent objects per user in the server-side without using databases?如何在不使用数据库的情况下将每个用户的持久对象存储在服务器端?
【发布时间】:2019-09-28 18:03:30
【问题描述】:

我需要在我的 .net-core razor-page Web 应用程序中为每个用户存储一个持久对象。该对象是结构化列表、字符串和数字的集合。应用程序的每个用户都需要在应用程序生命周期内拥有一个唯一且持久的对象,但不同的用户不应共享他们的对象。该对象需要可从任何页面访问和修改。

我目前正在使用静态类,但我想避免并发问题。此外,该对象需要存储在服务器端(无会话和配置)。

任何建议将不胜感激。提前谢谢你。

【问题讨论】:

    标签: concurrency global-variables asp.net-core-2.0 server-side static-variables


    【解决方案1】:

    看看IMemoryCache,它是框架本身提供的一个简单对象,您可以在服务器中为每个用户缓存一些数据。 您可以简单地使用 DI 注入它并使用它。查看使用它的官方文档非常简单明了。 Memory Cache in ASP.NET Core

    【讨论】:

    • 感谢@F_IVI_L 的回答。我看了你提供的链接。他们在文档的开头提到了这句话:“应该编写和测试应用程序,使其永远不依赖缓存的数据。”。就我而言,如果没有这些对象,应用程序将永远无法运行。不过,我会在本周末尝试实施您建议的解决方案,然后我会回复您:)。
    • 您不应该在生产场景中使用这种类型的缓存,但是,您可以将其用作解决简单问题的技巧。如果您需要用于生产的持久内存数据,则必须使用其他解决方案,例如 Redis 或将其存储在您的数据库中。
    猜你喜欢
    • 1970-01-01
    • 2018-03-08
    • 2011-06-18
    • 2020-12-09
    • 2015-11-01
    • 2012-02-21
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    相关资源
    最近更新 更多