memcache缓存应用之python操作篇

Python 投稿 58300 0 评论

memcache缓存应用之python操作篇

Memcache简介

Memcache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。Memcache是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。Memcache设计理念就是小而强大,它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题,而所开放的API使得MemCache能用于Java、C/C++/C#、Perl、Python、PHP、Ruby等大部分流行的程序语言。

Memcache和Memcached的区别:

  1. Memcache是项目的名称

  2. Memcached是Memcache服务器端可以执行文件的名称

python操作memcache示例

# 导入包
import memcache
# 建立链接
mc = memcache.Client(['192.168.1.137:11211'], debug=True)

#add 添加键值对,已经存在的会添加失败报异常
mc.add('key1','val1')
mc.add('key2','val2')
mc.add('key3','val3')
# mc.add('key1','val1') #添加重复会报错
print(mc.get('key1'))

# delete 删除键值对
# delete  在Memcached中删除指定的一个键值对
# delete_multi  在Memcached中删除指定的多个键值对
mc.delete('key1')#在Memcached中删除指定的一个键值对
mc.delete_multi(['key2','key3'])# 在Memcached中删除指定的多个键值对

# replace修改某个键值,如果key不存在则报异常 
print(mc.get('key1'))
mc.replace('key1','val11')
print(mc.get('key1'))
mc.replace('key5','val55') #不存在则抛出异常
# print(mc.get('key5'))

# set 和 set_multi
# set         设置一个键值对,如果key不存在,则创建,如果key存在,则修改
# set_multi   设置多个键值对,如果key不存在,则创建,如果key存在,则修改
print(mc.get('key1'))
print(mc.get('key2'))
print(mc.get('key3'))
mc.set('key4','v4')
mc.set('key1','jabe')
mc.set_multi({'key2':'ljb','key3':'llll'})
print(mc.get('key1'))
print(mc.get('key2'))
print(mc.get('key3'))
print(mc.get('key4'))

# get 和 get_multi
# get         获取一个键值对
# get_multi   获取多一个键值对
print(mc.get('key1'))
print(mc.get_multi(['key1','key2','key3']))

# append 和 prepend
# append    修改指定key的值,在该值 后面 追加内容
# prepend   修改指定key的值,在该值 前面 插入内容
print(mc.get('key1'))
mc.append('key1','after') #在当前值后面添加after
print(mc.get('key1'))
print(mc.get('key2'))
mc.prepend('key2','before')#在当前值前面添加before
print(mc.get('key2'))

# decr和incr
# incr 自增,将Memcached中的某一个值增加 N ( N默认为1 )
# decr 自减,将Memcached中的某一个值减少 N ( N默认为1 )
mc.set('key1', '777')
print(mc.get('key1')) 
mc.incr('key1')
print(mc.get('key1'))
# key1 = 778 
mc.incr('key1', 10)
print(mc.get('key1'))
# key1 = 788 
mc.decr('key1')
print(mc.get('key1'))
# key1 = 787 
mc.decr('key1', 10)
print(mc.get('key1'))
# key1 = 777

# gets和cas
v = mc.gets('product_count')
# ...
# 如果有人在gets之后和cas之前修改了product_count,那么,下面的设置将会执行失败,剖出异常,
# 从而避免非正常数据的产生
mc.cas('product_count', "899")

编程笔记 » memcache缓存应用之python操作篇

赞同 (72) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽