3

我正在使用redis2-nginx-module来提供存储为redis. 以下是nginx从 redis 获取键值的配置代码。

  redis2_query get $fullkey;                                     
  redis2_pass     localhost:6379;                                
  #default_type text/html;

当点击 url 时,会呈现以下不需要的响应以及该键的值。

$14

如何删除这个不需要的输出?此外,如果作为参数传递的键在 redis 中不存在,如何检查此条件并显示一些默认页面?

4

1 回答 1

0

(这是关于 ServerFault 的类似问题

仅使用 redis2 模块是没有办法的,因为它总是返回一个原始的 Redis 响应

如果您只需要GETSET命令,您可以尝试使用 HttpRedisModule ( redis_pass)。如果你需要一些更高级的东西,比如哈希,你应该尝试使用 Lua 过滤来自 Redis 的原始响应,例如类似的东西

content_by_lua '
    local res = ngx.location.capture("/redis",
        { args = { key = ngx.var.fullkey } }
    )
    local body = res.body
    local s, e = string.find(body, "\r\n", 1, true)
    ngx.print(string.sub(body, e + 1))
';

(抱歉,代码未经测试,手头没有 OpenResty 实例。)

于 2016-05-13T14:42:01.850 回答