Skip to content

Instantly share code, notes, and snippets.

@c4pt0r
Created April 13, 2012 10:43
Show Gist options
  • Save c4pt0r/2375731 to your computer and use it in GitHub Desktop.
Save c4pt0r/2375731 to your computer and use it in GitHub Desktop.
pot
#encoding=utf-8
import tornado
import pytyrant
import tornado.web
import tornado.ioloop
import json as simplejson
tt_server = None
class PutHandler(tornado.web.RequestHandler):
def post(self):
key = self.get_argument('key', None)
value = self.get_argument('value', None)
if key is None:
self.write('key error')
elif value is None:
key = key.encode('utf-8')
if tt_server.has_key(key):
del tt_server[key]
self.write('delete success')
else:
self.write('no such key')
else:
key,value = key.encode('utf-8'), value.encode('utf-8')
tt_server[key] = value
self.write('write success')
class GetHandler(tornado.web.RequestHandler):
def get(self):
key = self.get_argument('key', None)
if key is not None:
key = key.encode('utf-8')
if tt_server.has_key(key):
self.write(tt_server[key])
else:
self.write('no such key')
class PrefixHandler(tornado.web.RequestHandler):
def get(self):
key_pref = self.get_argument('search', None)
if key_pref is not None:
key_pref = key_pref.encode('utf-8')
ret = tt_server.prefix_keys(key_pref)
vlist = []
for i in ret:
t = {}
t['key'] = i
t['value'] = tt_server[i]
vlist.append(t)
ret = simplejson.dumps(vlist)
self.write(ret)
application = tornado.web.Application([
(r"/put", PutHandler),
(r"/get", GetHandler),
(r"/prefix", PrefixHandler),
])
if __name__ == '__main__':
global tt_server
tt_server = pytyrant.PyTyrant.open('127.0.0.1', 11211)
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment