2013-04-06 51 views
1

使用python-memcached==1.48Memcached的犯規讓緩存項較大就算有人overrided

終端是1MB限制:

memcached -I 10m 

的Python:

Python 2.7.3 (default, Sep 26 2012, 21:51:14) 
[GCC 4.7.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import memcache 
>>> mc = memcache.Client(['127.0.0.1:11211'], debug=0) 
>>> print(mc.set('test', ''.join(['a' for x in xrange(1*1024*1024+1)]))) 
0 
>>> print(mc.set('test', ''.join(['a' for x in xrange(1*1024*1024)]))) 
True 

大家能否重現這實際上?

回答

1

你必須告訴python-memcache最大值大小是什麼的時候,才接受值大於1MB:

import memcache 

mc = memcache.Client(['127.0.0.1:11211'], 
    debug = 0, 
    server_max_value_length = 1024*1024*10 
)