日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python操作memcahed

發布時間:2023/12/15 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)deletedelete_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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。