当前位置:   article > 正文

Docker安装Memcached+Python调用

docker安装memcached

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

历史攻略:

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

Python:Celery+Redis实现定时任务

特点:

// 优点
文档结构的存储方式,能够更便捷的获取数据
内置GridFS,支持大容量的存储
内置Sharding,分片简单
海量数据下,性能优越
支持自动故障恢复(复制集)

// 缺点
不支持事务操作
占用空间过大
MongoDB没有如MySQL那样成熟的维护工具
无法进行关联表查询,不适用于关系多的数据
复杂聚合操作通过mapreduce创建,速度慢
模式自由,自由灵活的文件存储格式带来的数据错误
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

容器化安装启动:

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

安装依赖库:

pip install python-memcached
  • 1

案例源码:

# -*- 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'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

运行结果:

Tom
{'addr': 'China', 'age': 30, 'name': 'Tom'}
  • 1
  • 2

常用的方法:

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

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

https://memcached.org/
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/387630
推荐阅读
相关标签
  

闽ICP备14008679号