技术笔记: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


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

目录
打赏
0
0
0
0
44
分享
相关文章
天猫商品详情API接口技术解析与Python实现
天猫商品详情API(tmall.item_get)通过商品ID获取商品标题、价格、库存、图片、SKU及评价等详细信息,支持HTTP请求与JSON格式返回,适用于电商数据分析与运营。本文提供Python调用示例,实现快速接入与数据解析。
抖音批量发布视频工具,自动上传视频作品笔记,python发布软件
这个抖音批量发布工具包含三个主要模块:主上传程序、配置文件和视频预处理工具。主程序
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
淘宝图片搜索接口技术解析与Python实现
淘宝图片搜索接口(拍立淘)基于图像识别技术,允许用户上传商品图片查找相似或相同商品。自2014年上线以来,已服务数千万日活用户,显著提升购物体验。接口通过CNN、ANN等技术实现图像预处理、特征提取与相似度匹配,支持多种调用方式与参数设置。本文提供Python调用示例,便于开发者快速集成。
小红书批量发布协议, 抖音自动批量发布软件脚本,笔记作品视频自动发布工具【python】
这个工具框架包含了小红书和抖音的批量发布功能,支持图片和视频处理、定时发布等功能
抖音快手小红书哔哩哔哩,批量发布作品笔记视频工具,自动发布作品上传笔记视频【python】
这个工具实现了四大平台的视频批量上传功能,包含完整的异常处理和日志记录。使用时需要配置
小红书批量发布笔记工具,小红书批量上传软件,python框架分享
这个框架包含了配置文件、工具函数、API封装和主程序四个模块。使用时需要先配置账号信息,
Python 技术员实践指南:从项目落地到技术优化
本内容涵盖Python开发的实战项目、技术攻关与工程化实践,包括自动化脚本(日志分析系统)和Web后端(轻量化API服务)两大项目类型。通过使用正则表达式、Flask框架等技术,解决日志分析效率低与API服务性能优化等问题。同时深入探讨内存泄漏排查、CPU瓶颈优化,并提供团队协作规范与代码审查流程。延伸至AI、大数据及DevOps领域,如商品推荐系统、PySpark数据处理和Airflow任务编排,助力开发者全面提升从编码到架构的能力,积累高并发与大数据场景下的实战经验。
Python 技术员实践指南:从项目落地到技术优化
Docker下安装memcached
Docker下安装memcached
285 0

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等