如何使用 nutcracker (twemproxy),python示例

关于nutcracker 也叫twemproxy,是twitter提供的memcache和radis的分片工具,有各种算法可以选择。具体 的介绍我就不说了,网上一大堆。


至于使用,到很少很少。


这里用python做个简单使用说明。


1\ 首先,我这里就启动2个memcached。命令如下:

memcached -d -m 100 -c 1000 -u root -p 11211


memcached -d -m 100 -c 1000 -u root -p 11212


2\ nutcracker配置文件如下

bash-3.2$ cat nutcracker.root.yml 

root:

  listen: 127.0.0.1:11210

  hash: fnv1a_64

  distribution: ketama

  preconnect: true

  auto_eject_hosts: false

  servers:

   - 127.0.0.1:11211:1

   - 127.0.0.1:11212:1


直接启动,只为测试:

#!/bin/sh

/usr/local/sbin/nutcracker -c nutcracker.root.yml



OK 到这里我们的memcache + nutcracker的工作已经完成了。

由于这里是新启动,所以数据肯定是空的,我们就不验证了。(不相信自己去试试)

然后我们启动一遍python的写memcache的脚本。

注意这里python脚本实际上连接的是nutcracker的ip和port

脚本如下:

bash-3.2$ cat testNutcracker.py 

#!/usr/local/bin/python


import memcache


mc = memcache.Client(['localhost:11210'],debug=0)

chenee = "is a pig"

print chenee


chenee = mc.get("foo.chenee")

print chenee



mc.set("foo.chenee","chenee is a big pig")

chenee = mc.get("foo.chenee")

print chenee



python脚本的运行结果如下:

bash-3.2$ ./testNutcracker.py 

is a pig

chenee is a big pig

chenee is a big pig

bash-3.2$ 


可以看到读取,设置缓存的工作已经成功,我们下面来验证nutcracker到底有木有效果;



Connection closed by foreign host.

bash-3.2$ telnet 127.0.0.1 11210

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

get foo

END

get foo.chenee

VALUE foo.chenee 0 19

chenee is a big pig

END

quit

Connection closed by foreign host.

bash-3.2$ telnet 127.0.0.1 11211

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

get foo.chenee

VALUE foo.chenee 0 19

chenee is a big pig

END

quit

Connection closed by foreign host.

bash-3.2$ telnet 127.0.0.1 11212

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

get foo.chenee

END

quit

Connection closed by foreign host.

可以看到我们直接telnet到nutcracker,可以看到数据。

telnet到11211的memcache上可以看到数据。但是11212这个memcached上并不存在数据。说明nutcracker确实是对我们的set和get操作做调度了。



over,进一步还没有研究。等真正用到了再说。


注:在迷惑了很久以后,这篇文章的代码部分给我灵感,发现到真正的用法。感谢作者


github.com/shuge/man/blob/master/sa/kv/twemproxy-quick-guide.md  

你可能感兴趣的:(server,python,memcached,twemproxy,nutcracker)