当前位置: 首页 > 面试题库 >

如何测试我的Redis缓存是否正常工作?

罗绪
2023-03-14
问题内容

我已经安装了django-redis-cache和redis-
py。我关注了Django的缓存文档。据我所知,下面的设置是我所需要的。但是我怎么知道它是否正常工作呢?

    CACHES = {
        'default': {
            'BACKEND': 'redis_cache.RedisCache',
            'LOCATION': '<host>:<port>',
            'OPTIONS': {
                'DB': mydb,
                'PASSWORD': 'mydbspasswd',
                'PARSER_CLASS': 'redis.connection.HiredisParser'
            },
        },
    }

    MIDDLEWARE_CLASSES = (
        'django.middleware.cache.UpdateCacheMiddleware',
         ...[the rest of my middleware]...
        'django.middleware.cache.FetchFromCacheMiddleware',
    )

    CACHE_MIDDLEWARE_ALIAS = 'default'
    CACHE_MIDDLEWARE_SECONDS = (60 * 60)
    CACHE_MIDDLEWARE_KEY_PREFIX = ''

问题答案:

尚未与Django一起使用,但是我的默认方法是在开发过程中检查某个组件是否确实写入了Redis:

首先,我刷新存储在redis中的所有键,以删除旧的缓存条目(在生产中绝对不要这样做,因为这会从redis中删除所有数据):

> redis-cli FLUSHALL

然后在我的应用程序中激活缓存,然后查看redis的作用:

> redis-cli MONITOR

您应该进入一个交互式会话,在该会话中您会看到发送到redis的每个命令。

重新加载页面,在终端上,您应该会看到一些SET *操作来存储缓存数据。

再次重新加载,如果您的缓存可用,您应该会看到一些GET *操作来检索缓存的数据。

注意:使用这种方法,您可以检查缓存是否实际使用。您看不到的是缓存是否有助于加快应用程序速度。为此,您必须按照注释中的建议进行性能测试。



 类似资料:
  • 服务器向我发送json对象、过期和ETAG。我希望Voley将这个对象保存在缓存中,并在下一次请求该对象时使用对服务器的请求,包括在报头中的ETag。如果响应将是304不修改,那么它应该使用缓存的资源,如果它将是200OK,它应该使用来自服务器的新资源。 Volley根本不发送请求(如果缓存未过期),或者如果缓存过期,则发送带有If-None-Match+etag字符串的新请求。并且服务器总是以2

  • 我读过这篇文章。作者认为每个Android应用程序都应该使用代码收缩。 我使用以下代码来收缩和模糊代码,

  • 在jasper报表中使用不同字体时,需要使用font-extensions。 但是,如果字体呈现不正确,是否有一种方法可以测试pdf是否支持该字体,以便了解问题是与我的字体扩展有关,还是与我的字体有关? 从jasper reports导出到pdf时字体的不正确呈现是一个常见的问题。例如,jasper reports pdf不能导出西里尔值,如清单第1点所示,使用字体扩展并不总是足够的,字体还需要得

  • 我对缓存这件事很陌生,并为我的spring boot应用程序学习了一些不同的解决方案。我在看Spring缓存,它是一种比我看到的redis缓存更简单的缓存机制。还有很多像“spring redis cache”这样的资源。当我看一下简单用法时,我看不出有什么不同。即使注释是相同的(Cacheable、CacheEvict、CachePut等),除了额外的redis配置和redis docker容器

  • 问题内容: 在jasper report中使用不同的字体时,您需要使用font-extensions。 但是,如果字体显示 不正确 ,有没有一种方法可以测试pdf是否支持该字体,以便我可以理解问题是否与我的字体扩展名或我的字体有关? 从jasper报告导出为pdf时,字体呈现不正确是一个常见的问题示例jasperReports PDF不会导出西里尔字母值,如清单1所示,使用字体扩展名并不总是足够的

  • 问题内容: 我正在做一个拼字游戏程序 在下面的示例中,我下面的代码使用SQLite作为简单数据库来存储我的单词。 但是,它告诉我无法重新创建数据库表。 如何检查是否已经存在一个名为的表,然后跳过尝试创建表的操作? 错误: 编码: 问题答案: 您要查找的查询是: 因此,代码应如下所示: SQLite 3.3+的一个方便的替代方法是使用更智能的查询来创建表: 从文档中: 试图在已经包含相同名称的表,索