当前位置: 首页 > news >正文

Docker安装Memcached+Python调用

简介:Memcached是一个通用的分布式内存缓存系统。它通常用于通过在RAM中缓存数据和对象来加速动态数据库驱动的网站,以减少必须读取外部数据源(如数据库或API)的次数。Memcached的API提供了一个分布在多台机器上的非常大的哈希表。当表已满时,随后的插入会导致以最近使用最少的顺序清除较旧的数据。使用Memcached的应用程序通常会将请求和添加分层到RAM中,然后再返回到较慢的后备存储(如数据库)。

历史攻略:

centos7:docker安装Redis并用Redis Desktop Manager连接

Python:Celery+Redis实现定时任务

特点:

// 优点
文档结构的存储方式,能够更便捷的获取数据
内置GridFS,支持大容量的存储
内置Sharding,分片简单
海量数据下,性能优越
支持自动故障恢复(复制集)// 缺点
不支持事务操作
占用空间过大
MongoDB没有如MySQL那样成熟的维护工具
无法进行关联表查询,不适用于关系多的数据
复杂聚合操作通过mapreduce创建,速度慢
模式自由,自由灵活的文件存储格式带来的数据错误

容器化安装启动:

docker run --name my-memcache -d memcached memcached -m 64

安装依赖库:

pip install python-memcached

案例源码:

# -*- coding: utf-8 -*-
# time: 2023/12/03 12:35
# file: memcache_demo.py
# 公众号: 玩转测试开发
import memcacheclass MemcacheClient(object):def __init__(self, host, port):self.mc = memcache.Client([f'{host}:{port}'], debug=True)def set_message(self, key, value):self.mc.set(key, value)def get_message(self, key):return self.mc.get(key)def set_multi(self, **kwargs):self.mc.set_multi(kwargs)def get_multi(self, *args):return self.mc.get_multi(args)if __name__ == '__main__':host = "111.112.113.114"  # 服务具体ipport = "11211"  # 端口mc = MemcacheClient(host, port)mc.set_message("name", "Tom")  # 1次设置res1 = mc.get_message("name")  # 1次获取print(res1)mc.set_multi(addr="China", age=30)  # 多次设置res2 = mc.get_multi("addr", "age", "name")  # 多次获取print(res2)  # {'addr': 'China', 'age': 30, 'name': 'Tom'}

运行结果:

Tom
{'addr': 'China', 'age': 30, 'name': 'Tom'}

常用的方法:

[‘delete’, ‘delete_multi’, ‘get’, ‘get_multi’, ‘gets’, ‘replace’, ‘set’, ‘set_multi’,]

更多使用案例,详见官网:

https://memcached.org/
http://www.lryc.cn/news/251312.html

相关文章:

  • 网页开发 HTML
  • SHAP(五):使用 XGBoost 进行人口普查收入分类
  • LeetCode 8 字符串转整数
  • 前缀和 LeetCode1423. 可获得的最大点数
  • 探索意义的深度:自然语言处理中的语义相似性
  • WT2605-24SS高品质录音语音芯片:实时输出、不保存本地,引领音频技术新潮流
  • Git 合并冲突解决步骤
  • Windows核心编程 注册表
  • 【算法专题】二分查找
  • 中国消费电子行业发展趋势及消费者需求洞察|徐礼昭
  • UE学习C++(1)创建actor
  • 【CTA认证】Android8实现android6以下的应用运行时也要申请权限
  • gRPC Java、Go、PHP使用例子
  • 前端知识笔记(十九)———px,em,rem,vw,vh之间的区别
  • docker部署frp穿透内网
  • 使用pytorch从零开始实现迷你GPT
  • tp6框架 万级数据入库 php函数优化
  • TwinCAT3一个PLC设备里多个程序工程之间通讯
  • python弹球小游戏
  • mongoose学习记录
  • 边缘与云或边缘加云:前进的方向是什么?
  • 蓝桥杯第1037题子串分值和 C++ 字符串 逆向思维 巧解
  • 力扣题:字符串的反转-11.23
  • 【软件测试】盘一盘工作中遇到的 Redis 异常测试
  • 14.Oracle中RegExp_Like 正则表达式基本用法
  • Docker Swarm总结+Jenkins安装配置与集成(5/5)
  • docker安装Sentinel zipkin
  • 利用python实现文件压缩打包的功能
  • 如何创建百科?建立百科词条的意义何在?九问百科营销
  • Django如何设置时区为北京时间?