is it possible to connect to memcached and check in access phase?

Manlio Perillo manlio_perillo at libero.it
Sun Feb 22 23:16:07 MSK 2009


Huy Phan ha scritto:
> Is the DNS resolver module available on nginx so that I can check ?

It is not a module.
See src/core/ngx_resolver.h|c


> The main point of my workflow is that everything should be done at access 
> phase, so asynchornous is useless in this case isn't it ?
> 

No, it is not useless.
Asynchronous means that you don't block the whole Nginx process while 
waiting data from the memcached server.

However, if the memcached serve is on localhost, and since the data you 
exchange is small, it should be safe to use socket in blocking mode.

> When you said memcached client, doesn't it mean doing self-coding network 
> programming inside nginx ? 

Yes.
But you can of course use an existing memcached client, if it is 
implemented as a C library.
See http://code.google.com/p/memcached/wiki/Clients

The new libmemcached also seems to support an asynchronous interface.


But, really, implementing a client that only do a `get` request is not 
hard, if you use socket in blocking mode.

See the source code of the ngx_http_memcached_module.

> I still prefer using the code done by nginx to 
> prevent risks if there's any.
> 

The are no risks.

And you can't use the code from the existing memcached module, because 
it is implemented so that the data returned by a `get` request to a 
memcached server is sent directly to the HTTP client.

 > [...]



Manlio Perillo





More information about the nginx mailing list