redis2_raw_queries
`redis2_raw_queries` 指令允许指定多个原始 Redis 命令并将其发送到 Redis 服务器。
NGINX upstream module for the Redis 2.0 protocol
·
locationif in location
语法redis2_raw_queries number query;
默认值none
上下文location, if in location
参数2
说明
redis2_raw_queries 指令在 NGINX 中用于 location 块内,直接将原始 Redis 协议命令传递到指定的 Redis 服务器。这在需要发送复杂或非标准命令(其他指令如 redis2_query 提供的高级抽象可能不支持)时尤其有用。该指令接受两个参数:第一个是要处理的命令数量,第二个是包含实际 Redis 命令的变量或字面量,命令需按照 Redis 协议格式(包括正确的行结尾和编码)进行组织。该原始命令格式允许对与 Redis 服务器的交互进行细粒度控制,确保与可能需要特定命令结构的现有 Redis 客户端兼容。
典型用例包括执行多个命令或需要特定格式的命令,例如流水线命令。它可以通过在适用场景下将命令批量合并为单个请求来帮助优化性能。该指令适用于实现自定义缓存策略或在 Web 应用中搭建 Redis Pub/Sub 等场景,当标准查询结构不足以满足需求时尤为合适。该指令的行为与上下文相关,可在 location 和 if 块中生效,确保这些指令按任何先前配置所规定的顺序执行。
配置示例
location = /custom {
redis2_raw_queries 2 'set mykey value
get mykey
';
redis2_pass 127.0.0.1:6379;
}⚠
确保原始 Redis 命令根据 Redis 协议正确格式化,尤其要注意行结束符。
⚠
在没有合适的 redis2_pass 的情况下使用此指令可能导致请求失败,因为命令没有目标。
⚠
注意命令大小;过大的原始查询可能导致性能问题。