赞
踩
简介:Memcached是一个通用的分布式内存缓存系统。它通常用于通过在RAM中缓存数据和对象来加速动态数据库驱动的网站,以减少必须读取外部数据源(如数据库或API)的次数。Memcached的API提供了一个分布在多台机器上的非常大的哈希表。当表已满时,随后的插入会导致以最近使用最少的顺序清除较旧的数据。使用Memcached的应用程序通常会将请求和添加分层到RAM中,然后再返回到较慢的后备存储(如数据库)。
历史攻略:
centos7:docker安装Redis并用Redis Desktop Manager连接
特点:
// 优点
文档结构的存储方式,能够更便捷的获取数据
内置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 memcache class 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" # 服务具体ip port = "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/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。