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 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/

你可能感兴趣的:(docker,memcached,python)