tornado 是一個純python 實現的非阻塞web伺服器,內建了非同步httpclient,可以非同步請求http網路資源。
在實際應用中,我們常常需要訪問memcached等資源,發現官方並沒有具體實現memcache非同步用戶端,但是tornado留出了ioloop讓我們很容易就可以實現非同步socket網路訪問。
於是參照memcache的通訊協定,我簡單實現了一個非同步socket的memcache用戶端。
使用樣本
原始碼下載: async_memcache.py
if __name__ == '__main__': client = MemcacheClient('localhost', 11211) def get_callback(val): print val client.set('hello', 'world', get_callback) client.set('hello3', 'world3', get_callback) client.get('hello3', get_callback) client.get('hello2', get_callback) client.get(['hello', 'hello2', 'hello3'], get_callback) client.set('hello4', 'abc', get_callback) client.get('hello4', get_callback) client.append('hello4', 'append', get_callback) client.get('hello4', get_callback) client.prepend('hello4', 'prepend', get_callback) client.get('hello4', get_callback) client.delete('hello4', get_callback) client.get('hello4', get_callback) client.delete('hello4', get_callback) IOLoop.instance().start()
希望對你有用 ^_^