memcache避免sql连发

时间:2011-12-05 14:49:00

标签: python sql performance memcached race-condition

我想知道在使用memcache时是否有更好的方法来处理“sql bursts”。 让我用一个例子来解释

object = memcache.get('some_key')
if object is None:
   #multiple request will cause a bursts of sqls
   object = Object() #this trigger some sql
   memcache.set('some_key',oject,60)

所以我找到了避免sql突发的方法

object = memcache.get('some_key');
if(object is None or object.expire + rand(0,120) > now())
       #this not guarantees sql burst, but it will reduce them
       object = Object() #this trigger some sql
       object.expire = now() + 300
       memcache.set('some_key',object,60)

第二个选项不保证避免sql突发,我也不喜欢将expire添加到我的对象。

1 个答案:

答案 0 :(得分:0)

memcache wiki上提到了一些选项。