技术笔记:python使用memcached

简介: 技术笔记:python使用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


memcached -h


memcached 1.2.2


-p TCP port number to listen on (default: 11211)


-U UDP port number to listen on (default: 0, off)


-s unix socket path to listen on (disables network support)


-l interface to listen on, default is INDRR_ANY


-d run as a daemon


//代码效果参考:http://www.lyjsj.net.cn/wx/art_23278.html

-r maximize core file limit

-u assume identity of (only when run as root)


-m max memory to use for items in megabytes, default is 64 MB


-M return error on memory exhausted (rather than removing items)


-c 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 save PID in , only used with -d option


-f chunk size growth factor, default 1.25


-n 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//代码效果参考:http://www.lyjsj.net.cn/wz/art_23276.html

.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的失效时间格式有两种,当大于606024*30也就是30天的秒数时就是过期距1970年1月1日零时的秒数,否则是有效的秒数。


删除cache的代码:


for (search = tails【id】; tries>0 && search; tries--, search=search->prev) {


if (search->refcount==0) {


//代码效果参考:http://www.lyjsj.net.cn/wz/art_23274.html

item_unlink(search);

break;


}


}


增加条件:


search->exptime && search->exptime <= current_time


这样就可以保证删除的都是过期了的元素了。

相关文章
|
1月前
|
API Python
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
94 1
|
2天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
21 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
2天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
24 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
21天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
1月前
|
安全 数据挖掘 编译器
【01】优雅草央央逆向技术篇之逆向接口协议篇-如何用python逆向接口协议?python逆向接口协议的原理和步骤-优雅草央千澈
【01】优雅草央央逆向技术篇之逆向接口协议篇-如何用python逆向接口协议?python逆向接口协议的原理和步骤-优雅草央千澈
66 6
|
2月前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
110 2
|
9月前
|
Linux Memcache
Linux - 安装memcached
Linux - 安装memcached
127 0
Linux - 安装memcached
|
8月前
|
缓存 Java Spring
SpringBoot配置第三方专业缓存技术Memcached 下载 安装 整合测试 2024年5000字详解
SpringBoot配置第三方专业缓存技术Memcached 下载 安装 整合测试 2024年5000字详解
62 0
|
Docker 容器
Docker下安装memcached
Docker下安装memcached
207 0

热门文章

最新文章