python操作memcahed
Memcache常用命令
存儲命令: set/add/replace/append/prepend/cas
獲取命令: get/gets
其他命令: delete/stats
?
1)add方法
? 添加一條鍵值對,如果已經存在的key,重復執行add操作會報異常。
2)replace方法
? replace修改某個key的值,如果key不存在,則異常。
3)set和set_multi方法
? set :設置一個鍵值對,如果key不存在,則創建,如果key存在,則修改;
? set_multi:設置多個鍵值對,如果key不存在,則創建,如果key存在,則修改。
4)set和add方法的區別
? set = add + replace
? add方法用于向memcache服務器添加一個要緩存的數據;如果memcache服務器中已經存在要存儲的key,此時add方法調用失敗。
? set方法用于設置一個指定key的緩存內容,set方法是add方法和replace方法的集合體。
例:
#!/usr/bin/env?python import?memcache mc?=?memcache.Client(["192.168.2.230:11211"],debug=True)mc.add("y","a") print(mc.get("y"))mc.replace("y","b") print(mc.get("y"))mc.set("y","c") print(mc.get("y"))mc.set_multi({"i":1,"j":2,"k":3}) print(mc.get_multi(["i","j","k"]))
運行結果:
a
b
c
{'i': 1, 'k': 3, 'j': 2}
5)delete和delete_multi方法
? delete:在Memcached中刪除指定的一個鍵值對;
? delete_multi:在Memcached中刪除指定的多個鍵值對。
6)get和get_multi方法
? get : 獲取一個鍵值對;
? get_multi:獲取多個鍵值對
? 例:
#!/usr/bin/env?python import?memcache mc?=?memcache.Client(["192.168.2.230:11211"],debug=True) mc.set_multi({"i":1,"j":2,"k":3,"g":4})mc.delete("i") mc.delete_multi(["j","k"])print?mc.get_multi(["i","j","k","g"])
運行結果:
{'g': 4}
7)append和prepend方法
? append:修改指定key的值,在該值后面追加內容;
? prepend:修改指定key的值,在該值前面插入內容。
? 例:
#!/usr/bin/env?python import?memcache mc?=?memcache.Client(["192.168.2.230:11211"],debug=True) mc.set_multi({"i":1,"j":2,"k":3,"g":4})mc.append("i",5) mc.prepend("j",5)print?mc.get_multi(["i","j","k","g"])
運行結果:
{'i': 15, 'k': 3, 'j': 52, 'g': 4}
8)incr和decr方法
? incr:自增,將Memcached中的某一個值增加N(N默認為1)
? decr:自減,將Memcached中的某一個值減少N(N默認為1)
例:
#!/usr/bin/env?python import?memcache mc?=?memcache.Client(["192.168.2.230:11211"],debug=True) mc.set("No",100)mc.incr("No") print(mc.get("No"))mc.incr("No",100) print(mc.get("No"))mc.decr("No") print(mc.get("No"))mc.decr("No",50) print(mc.get("No"))
運行結果:
101
201
200
150
9)gets和cas方法
? 避免多個用戶從memcache中取完數字,數字只減1,而不是減多個。
? 如果在gets之后和cas之前修改了No,那么下面的設置將會執行失敗,拋出異常,從而避免非正常數據的產出;本質上每次執行gets時,會從memcache中獲取一個自增的數字,通過cas去修改gets的值時,會攜帶之前獲取的自增值和memcache中的自增值進行比較,如 ? 果相等,則可以提交,如果不相等,那表示在gets和cas執行之間,又有其他人執行了gets(獲取了緩沖的指定值),如此一來有可能出現非正常數據,則不允許修改。
?
?例:
#!/usr/bin/env?python import?memcache mc?=?memcache.Client(["192.168.2.230:11211"],debug=True) mc.set("No",100)v?=?mc.gets("No") print(v)v1?=?mc.cas("No",v) print(v1)
運行結果:
100
True
轉載于:https://blog.51cto.com/huangzp/2045559
總結
以上是生活随笔為你收集整理的python操作memcahed的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: p30无线充电有吗(华为p30报价)
- 下一篇: python实例[判断操作系统类型]