简单用装饰器实现memcached

import pylibmc

mc_client = pylibmc.Client(["127.0.0.1"], binary=True,
                           behaviors={"tcp_nodelay": True, "ketama": True})


def cache_func(func):
    print "---qqq---"

    def haha(*args):
        calculate_key = "some_key"
        value = mc_client.get(calculate_key)
        if value:
            print "read cache"
            return value
        else:
            print "write cache"
            value = func(*args)
            mc_client.set(calculate_key, value, 5)
            return func(*args)

        print "*****"

    return haha



set:不管key存在与否,强制进行set操作;

add:必须在memcached中不存在相应key才能作用;

replace:要求memcached中必须存在相应key才能作用;

append:将数据追加到key对应value值的末尾。(不允许超过限制,用于管理list)

cas(check and set):另一个存储数据的操作,当你最后一次读取该数据后,没有其它人修改该数据时,才可以写成功。用于解决更新数据时的竞争。

get:获取一个key的或多个keys的值; 

gets:带CAS的get命令,会返回带CAS标识(唯一的64位数字)的value。 

delete:删除存在的项 

incr/decr:自增或自减。只接受正整数。如果key不存在,incr/decr失败。 

flush_all:清除memcached中所有项,主要采取将所有数据设置为过期的方式实现,可指定过期时间。



附pylibmc文档:http://sendapatch.se/projects/pylibmc/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值