python---memcache使用操作
import memcachemc = memcache.Client(['127.0.0.1:8081'],debug=True)mc.set("key","val")ret = mc.get("key")print(ret)
set:
mc.set("key","val")
add:
#mc.add("key",'val')已存在则不允许添加 #MemCached: while expecting 'STORED', got unexpected response 'NOT_STORED'
replace:
mc.replace("key","valr") #不存在则不允许修改
上面的add,和replace不常使用,因为set完全可以替换,更加灵活,set()可以创建,可以修改
set_multi使用:
mc.set_multi({'k1':'v1','k2':'v2'})
delete和delete_multi
mc.delete("k1") mc.delete_multi("key1","key")
get和get_multi
ret = mc.get("k1")#返回结果 ret = mc.get_multi(["k1","k2"])#返回结果集
append和prepend,在设置的键后面的值上进行修改
mc.set("k1","v1") #k1 == > v1mc.append("k1","after") #k1 == >v1aftermc.prepend("k1","before") #k1 ==>beforev1after
decr和incr:
decr自减一,incr自加一(在未设置步长时),针对所存值都为int类型的数据
mc.set("key","1") mc.set("key",1) #上面两种都可以 mc.incr("key") ret = mc.get("key") print(ret) #结果为2mc.decr('key') print(ret) #结果为1 mc.incr("key",2)#自增2mc.decr("key",2)#自减2
gets和cas:防止有脏数据,类似加锁(实际是在内部维护了一个计数器),使数据保持正确,谁先获取这个数据,只有当他处理完成后,其他人,才可以再去获取,不允许同时获取数据,不然报错,所以可以通过这个try修改顺序
使用:
进程一:
import memcachemc = memcache.Client(['127.0.0.1:8081'],debug=True,cache_cas=True)mc = memcache.Client(['127.0.0.1:8081'],debug=True,cache_cas=True)r = mc.gets('c1') print(r) input(">>>") mc.cas('c1',99) r = mc.get('c1') print(r)
进程二:
import memcachemc = memcache.Client(['127.0.0.1:8081'],debug=True,cache_cas=True)r = mc.gets('c1') print(r) input(">>>") mc.cas('c1',99) r = mc.get('c1') print(r)
当1执行后堵塞,再执行2(本质上每次执行gets时,会从memcache中获取一个自增的数字),获取数据输出后,两个都堵塞
执行2,(通过cas去修改gets的值时,会携带之前获取的自增值和memcache中的自增值进行比较,如果相等,则可以提交)
再去执行1,cas数据是其自增值和内存不一致(由于2已经修改过),则报错
MemCached: while expecting 'STORED', got unexpected response 'EXISTS'
memcache和Redis比较:https://www.oschina.net/news/26691/memcached-timeout
转载于:https://www.cnblogs.com/ssyfj/p/8604996.html
python---memcache使用操作相关推荐
- Python模块MySQLdb操作mysql出现2019错误:Can't initialize character set utf-8
我使用python的MySQLdb模块实现了一个mysql client, 在测试时,出现了如下错误 Python模块MySQLdb操作mysql出现2019错误:Can't initialize c ...
- Python 炫技操作:合并字典的七种方法
来源 | Python编程时光(ID: Cool-Python) Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的.在这些人的眼里,能够写出那些一般开发者看 ...
- Python OpenCV像素操作
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 Python OpenCV像素操作 环 ...
- python列表字典操作_Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...
创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...
- python 实现卷积操作
python实现卷积操作 调用tf.nn.conv2d()实现卷积 自己实现卷积函数 我们知道,tensorflow里面自带卷积函数,tf.nn.conv2d()就可以实现相关功能,本文主要是自己实现 ...
- php memcache 基础操作
<?php /** * Memcache缓存操作 * @author hxm * @version 1.0 * @since 2015.05.04 */ class MCache ex ...
- python列表按照指定顺序排序-Python常见排序操作示例【字典、列表、指定元素等】...
本文实例讲述了Python常见排序操作.分享给大家供大家参考,具体如下: 字典排序 按value排序 d1 = {"name":"python","b ...
- python界面设置-PYTHON图形化操作界面的编程七__创建菜单
PYTHON图形化操作界面的编程七__创建菜单 十八.创建菜单 1.水平菜单的创建 创建菜单需要多条语句,所以这里通过实例来说明水平菜单的创建方法: 下面的语句可以在窗口中添加水平菜单,其中前四行语句 ...
- python与excel做数据可视化-Python的Excel操作及数据可视化
Excel表操作 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 安装xlrd pip install xlrd 简单的表格读取 ...
- python切片语法-Python字符串切片操作知识详解
python 中关于字符串切片的一个问题 aa[0:6] 表示取 第0,1,2,3,4,5 位的数据 所以是6个 123456 aa[:-1] 表示取开始到倒数第二位的数据 所以也是123456 就像 ...
最新文章
- Python使用sklearn构建ElasticNet回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型
- 记一次前端问题解决历程(Cannot read Property ‘call‘ of undefined)
- 意念打字、梦境重现如何成真,张钹、李路明等知名专家共话脑机接口最新进展 | 首届脑科学开放日...
- 模型大小 与参数量计算
- java修改JFrame默认字体
- centos 升级mysql_CentOS 7下升级MySQL5.7.23的一个坑
- 阿里菜鸟知识储备之二——git工具学习
- 和功率的计算公式_电机电流的计算公式是什么,具体怎么计算?
- 【Linux环境部署】最新版 elasticsearch + kibana(7.15.0)安装、配置、启动(多个问题处理 + kibana仪表盘使用)
- url传递html字符串,将Selenium HTML字符串传递给Scrapy以将url添加到Scrapy的url列表中...
- XAML Workflow Schema
- python asyncio和celery对比_如何将Celery与asyncio结合? - python
- [高等数学]这你不背?
- 修改Linux SSH连接端口和禁用IP,安装DDoS deflate
- 题解 P1137 【旅行计划】
- 解决 django 中 mysql gone away 的问题
- http://mozilla.debian.net/
- Python函数练习题
- GPIO模拟MDC/MDIO协议
- iOS终于能微信双开了!原理竟然是这样…
热门文章
- 再谈java乱码:GBK和UTF-8互转尾部乱码问题分析
- ArcGIS符号异常问题
- 清除window 系统中的垃圾文件-转
- 一文探讨 RPC 框架中的服务线程隔离
- 瞬间几千次的重复提交,我用 Spring Boot + Redis 扛住了!
- Java线程详解(6)-线程的交互
- spring security CSRF 问题 Invalid CSRF Token 'null' was found on ......
- Android --- 选项卡背景样式,左侧边有颜色
- element ui 表格中的字太长,想要把多余的字变成...解决方法,一个属性即可
- 如何双击运行可执行的jar包-包懂