【问题标题】:Load data in memory during server startup in Django app在 Django 应用程序中的服务器启动期间将数据加载到内存中
【发布时间】:2021-01-14 06:23:26
【问题描述】:

我正在创建一个 Django 应用程序,当服务器启动以便快速访问时,我需要在其中加载一些数据并将其保存在内存中。为此,我使用了 Django 的 AppConfig 类。代码看起来像这样:

from django.core.cache import cache
class myAppConfig(AppConfig):
    name = 'myapp'
     def ready(self):
        data = myModel.objects.values('A','B','C') 
        cache.set('mykey', data)

问题是缓存中的这些数据会在一段时间后过期。一种替代方法是增加 TIMEOUT 值。但我希望它一直在内存中可用。我可以使用其他配置或方法来实现此目的吗?

【问题讨论】:

    标签: django caching redis memcached


    【解决方案1】:

    如果您使用的是 Redis。它确实提供了持久的数据捕获。

    查看https://redis.io/topics/persistence

    您必须通过 Redis Configuration 进行设置。 重新启动后将有两种方法可以将数据保留在缓存中 - 它们都将以其他格式将数据保存在 HDD 中。我建议您根据自己的目的设置 AOF,因为它会记录每个写入操作。但是,它会占用更多空间。

    【讨论】:

    • 会和 memcached 不同吗?
    • Memcached 是一种不同的内存缓存软件。他们之间有很多比较文章。据我所知,Memcached 是一个简单的键值存储,与 Redis 相比,配置也简单。所以,我不认为它具有原始快照和持久性功能。另一方面,Redis 具有更多的数据存储功能,例如分区、集群和持久化——适用于更大的分布式系统。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 2017-05-26
    • 2017-12-19
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2020-10-17
    相关资源
    最近更新 更多