Nginx-redis模块返回字符串长度以及Redis

时间:2016-05-13 12:07:45

标签: nginx redis openresty

我正在使用redis2-nginx-module来提供存储为redis中值的html内容。以下是nginx配置代码,用于从redis获取密钥的值。

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

当点击网址时,会显示以下不需要的响应以及该键的值。

$14

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

1 个答案:

答案 0 :(得分:0)

(这是a similar question on ServerFault

只有redis2模块没有办法,因为always return a raw Redis response

如果您只需要GETSET命令,则可以尝试使用HttpRedisModule(redis_pass)。如果你需要更漂亮的东西,比如哈希,你应该尝试filtering the raw response from Redis with Lua,例如

的内容
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实例。)