python使用memcached
转载:http://oursimplehouse.blog.sohu.com/63588732.html
网上对memcached的讨论好火呀!总结一下
安装 memcached:
1、下载memcached-1.2.2.tar.gz
2、tar xvzf memcached-1.2.2.tar.gz
3、./configure;make;make install
安装python API组件:
1、下载python-memcached-1.39.tar.gz
2、tar xvzf python-memcached-1.39.tar.gz
3、python setup.py install
启动memcached
memcached -d -m 64 -l 10.1.41.113 -p 11211
启动的这个memcached为一个后台守护进程模式(-d), 然后缓存的空间为64M(-m), 监听(-l)服务器10.1.41.113的11212号端口(-p)
root下要加-u 指定user参数
memcached -u bj1822 -d -m 64 -l 10.1.41.113 -p 11211
#杀掉缓存
ps aux|grep memcached
killall memcached
#启动缓存
/usr/local/memcached/bin/memcached -d -m 1024 -c 2048 -p 7788 -t 8 -u nobody
/usr/local/memcached/bin/memcached -d -m 1024 -c 2048 -p 7789 -t 8 -u nobody
memcached -h
memcached 1.2.2
-p <num> TCP port number to listen on (default: 11211)
-U <num> UDP port number to listen on (default: 0, off)
-s <file> unix socket path to listen on (disables network support)
-l <ip_addr> interface to listen on, default is INDRR_ANY
-d run as a daemon
-r maximize core file limit
-u <username> assume identity of <username> (only when run as root)
-m <num> max memory to use for items in megabytes, default is 64 MB
-M return error on memory exhausted (rather than removing items)
-c <num> max simultaneous connections, default is 1024
-k lock down all paged memory
-v verbose (print errors/warnings while in event loop)
-vv very verbose (also print client commands/reponses)
-h print this help and exit
-i print memcached and libevent license
-b run a managed instanced (mnemonic: buckets)
-P <file> save PID in <file>, only used with -d option
-f <factor> chunk size growth factor, default 1.25
-n <bytes> minimum space allocated for key+value+flags, default 48
编写python程序:
import memcache, time
mc = memcache.Client(['10.1.41.113:11211'], debug=0)
连接到10.1.41.113的11211端口,也就是memcachd启动的端口。
mc.set("some_key", "Some value")
设置key和value,第三个参数默认为0,也就是数据永不超时。
如果这样设置:
mc.set("some_key", "Some value",1)
表示一秒后超时
过两秒打印value的话
time.sleep ( 2)
value = mc.get("some_key")
print value
结果就是None了。
删除
mc.set("another_key", 3)
mc.delete("another_key")
自增和自减
mc.set("key", "1")
mc.incr("key")
mc.decr("key")
关于LRU
LRU是缓冲超过存储上限时删掉队尾也就是最长时间没人访问的元素,参数是-M。但设置了-M和过期时效会存在将未失效的元素删去的风险。所以网上有人改了下代码,增加对过期时效的判断:
返回超时时间的代码:
if (exptime > REALTIME_MAXDELTA)
return (rel_time_t) (exptime - stats.started);
else {
return (rel_time_t) (exptime + current_time);
}
memcached的失效时间格式有两种,当大于60*60*24*30也就是30天的秒数时就是过期距1970年1月1日零时的秒数,否则是有效的秒数。
删除cache的代码:
for (search = tails[id]; tries>0 && search; tries--, search=search->prev) {
if (search->refcount==0) {
item_unlink(search);
break;
}
}
增加条件:
search->exptime && search->exptime <= current_time
这样就可以保证删除的都是过期了的元素了。
分享到:
相关推荐
python-memcached python-memcached
python-memcached-latest.tar
memcached python-memcached
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
python库。 资源全名:tencentcloud-sdk-python-memcached-3.0.556.tar.gz
python库。 资源全名:tencentcloud-sdk-python-memcached-3.0.335.tar.gz
离线安装包,亲测可用
资源分类:Python库 所属语言:Python 资源全名:tencentcloud-sdk-python-memcached-3.0.418.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:tencentcloud-sdk-python-memcached-3.0.567.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
通过Python在Linux环境下安装Memcached
资源来自pypi官网。 资源全名:tencentcloud-sdk-python-memcached-3.0.315.tar.gz
python-memcached-转储 从memcache服务器导出数据,只为备份数据求助 [ root @ localhost ~ ] # python memcached-dump.py --help usage : memcached - dump . py [ - h ] [ - - host HOST ] [ - - port PORT ] [ - ...
资源分类:Python库 所属语言:Python 资源全名:python-binary-memcached-0.24.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
主要介绍了Python编写memcached启动脚本代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
该软件是memcached内存缓存守护程序的100%Python接口。 它是客户端软件,它允许将值存储在一个或多个可能是远程的Memcached服务器中。 在google中搜索memcached以获取更多信息。 该软件包最初由Danga的Evan Martin...
一个全面的,快速的,纯Python的memcached客户端。 pymemcache支持以下功能: memcached文本协议的完整实现。 使用UNIX套接字或TCP over IPv4或IPv6的连接。 套接字连接和发送/接收呼叫的可配置超时。 访问“ ...
主要介绍了Python中用memcached来减少数据库查询次数的教程,memcached是一种分布式的内存缓存工具,使用后可以减少对硬盘的I/O次数,需要的朋友可以参考下
python-memcached-中继从 Redis PubSub 通道中继 memcached 更新这包括一个“推送”HTTP 守护进程,用于将 JSON 事件推送到 redis 服务器集群中。 写入在 redis 服务器之间随机条带化。 还有一个“pull”守护进程,...
memcached-1.4.15-1.el6.i686.rpm