当涉及到诸如BLPOP之类的命令或侦听Pub / Sub频道时,您将需要一个像 tornado-
redis之类的异步客户端。您可以从此演示开始,看看如何使用tornado-
redis客户端开发简单的公共聊天应用程序。
但是 对于大多数其他情况,我建议将同步redis-py客户端与hiredis结合使用。
异步客户端的主要优点是您的服务器可以在等待Redis服务器响应的同时处理传入请求。但是,Redis服务器是如此之快,以致在大多数情况下,在Tornado应用程序中设置异步回调的开销比请求等待Redis服务器响应所花费的时间更多。
使用异步客户端,您可以尝试同时向Redis服务器发送多个请求,但是Redis服务器是单线程的(就像Tornado服务器一样),因此它将一一响应这些请求,然后您几乎一无所获。而且,实际上,只要有管道和MGET
/ MSET之类的命令,您就不必同时向同一Redis服务器发送多个Redis命令。
当您使用多个Redis服务器实例时,异步客户端具有一些优点,但是我建议使用同步(redis-
py)客户端和一个代理,例如twemproxy或该代理(后者支持管道和MGET / MSET命令)。
另外,我建议在Tornado应用程序中使用redis-py客户端时不要使用连接池
。只需
Redis为应用程序连接到的每个Redis数据库创建一个对象实例。



