tornado 异步客户端tornado-redis的使用

tornado 可用的异步 redis 客户端,使用很方便。
下面的例子介绍了怎么使用管道设置值和读取值的简单操作

#coding:utf-8
import tornadoredis
import tornado.httpserver
import tornado.web
import tornado.ioloop
import tornado.gen

#设置连接池
CONNECTION_POOL = tornadoredis.ConnectionPool(max_connections=500,wait_for_available=True)
# 生成一个客户端,这里并没有给出host和port,使用的默认的参数,我的redis使用默认的参数也可以连接上
# Client的参数为
# def __init__(self, host='localhost', port=6379, unix_socket_path=None,
#                  password=None, selected_db=None, io_loop=None,
#                  connection_pool=None):
c = tornadoredis.Client(connection_pool=CONNECTION_POOL)

class MainHandler(tornado.web.RequestHandler):

    @tornado.web.asynchronous
    @tornado.gen.engine
    def get(self):
        name = yield tornado.gen.Task(c.get,'name')
        age = yield tornado.gen.Task(c.get,'age')
        height = yield tornado.gen.Task(c.get,'height')
        self.finish("name: {0} age: {1} height: {2}".format(name, age, height))


application = tornado.web.Application([
    (r'/', MainHandler),
])

@tornado.gen.engine
def create_test_data():
    c = tornadoredis.Client()
    # 使用管道设置值
    with c.pipeline() as pipe:
        pipe.set('name', 'zhangsan')
        pipe.set('age', '10')
        pipe.set('height', '1.8')
        yield tornado.gen.Task(pipe.execute)


if __name__ == '__main__':
    # Start the data initialization routine
    create_test_data()
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(8888)
    print 'Demo is runing at 0.0.0.0:8888\nQuit the demo with CONTROL-C'
    tornado.ioloop.IOLoop.instance().start()

执行结果

name: zhangsan age: 10 height: 1.8

1、scan的使用

yield tornado.gen.Task(c.scan, cursor = 0, match = "*:{0}".format(sha1))

2、incr的使用

tornado.gen.Task(async.incr, 'file_upload_idx')

3、hmget的使用

yield tornado.gen.Task(async.hmget,key,["uid","file_type"])

注意

在使用tornado-redis的时候一定要在形如class MainHandler(tornado.web.RequestHandler)中使用,不要想着脱离它再使用,否则会出现很多的错误,这个坑我已经踩过了,大家注意,如果在其他的地方使用可以选择使用redis这个包。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值