Memcached/JSONP

Marcus Clyne ngx.eugaia at gmail.com
Wed Dec 23 13:37:51 MSK 2009


Hi,
>
> If you're actually worried about special characters in the parsed URI
> in $uri when feeding it as a memcached key, try Marcus Clyne's
> ngx_set_var module to pre-hash the key ;)
>
>     http://simpl.it/ngx/set_var/ngx_http_set_var_module-0.1.0.tar.gz
>   
Thanks for the mention, but I wouldn't recommend hashing memcached keys 
unless you absolutely have to.  Apart from the (albeit slim) chance of 
hash collisons (i.e. two URLs matching the same hash), it's a waste of 
resources.

You should remember that the URLs will be passed URL-unencoded, though 
(I believe - best to check that).
>   
>> I've tried a few different combinations of location directives, but can't seem to get it right.  For example:
>>
>> If I made a request to:
>> /first/11111.ext?callback=222222
>>
>> I'd want to look up the following path in Memcached:
>> /first/11111.ext
>>
>> So, when I do that echo_async_location, I don't see how I'm able to extrapolate the path out.
>>     
>
> Use $uri rather than $request_uri. I know the difference between these
> two is very subtle, especially when not looking into the source. Blame
> Igor or some others ;)
>
>   
>> If there was an internal variable that held the $uri, minus the $query_string, that would do it!
>> However, I don't think that exists at the moment.
>>
>>     
>
> $uri is the parsed form of $request_uri, with query string excluded.
> And $request_uri is always the main request's URI while $uri is the
> current (sub)request's :)
>
>   
Looks like I duplicated this info in my last email. :-)  Oops.

Marcus.



More information about the nginx mailing list