开发者社区> 问答> 正文

Python 操作 Memcached 中gets 和 cas的区别是什么?

Python 操作 Memcached 中gets 和 cas的区别是什么?

展开
收起
cuicuicuic 2021-11-07 14:42:29 347 0
1 条回答
写回答
取消 提交回答
  • "这两个方法就是传说中的 锁

    为了避免脏数据的产生而生

    import memcache mc = memcache.Client(['192.168.1.5:12000'], debug=True, cache_cas=True)

    v = mc.gets('product_count')

    如果有人在gets之后和cas之前修改了product_count,那下面的设置将会执行失败,剖出异常

    mc.cas('product_count', ""899"") 本质:每次执行 gets 时,就从 memcache 中获取一个自增的数字,通过 cas 去修改 gets 到的值时,会携带之前获取的自增值和 memcache 中的自增值进行比较,如果相等,则可以提交,如果不相等,那表示在 gets 和 cas 执行之间,又有其他人执行了 gets(获取了缓冲的指定值),如此一来有可能出现非正常的数据,则不允许修改,并报错。" image.png

    2021-11-09 11:17:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载