centos7 部署 memcache

    科技2026-02-12  20

    环境: centos7.6, mongodb-server v2.6.12 安装 memcached

    yum install memcached

    启动 memcached

    systemctl start memcached

    检查已经启动 memcached

    yum install -y libmemcached memstat --servers="127.0.0.1:11211"

    python 使用 memcache

    pip install python-memcached import memcache mc = memcache.Client(['127.0.0.1:11211'],debug=False) mc.set("foo","bar") mc.get("foo") 设置账号、密码 sasl

    修改 memcache 配置文件 /etc/sysconfig/memcached, 在 OPTIONS 变量中添加 -S 参数,添加 -vv 参数有助于调试, -U 0 禁用 udp 侦听

    [root@ansible002 ~]# cat /etc/sysconfig/memcached PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1 -U 0 -S -vv"

    重启 memcached

    systemctl restart memcached

    检查

    [root@ansible002 ~]# memstat --servers="127.0.0.1" [root@ansible002 ~]# echo $? 1

    下载软件 cyrus-sasl-devel cyrus-sasl-plain,允许我们创建和验证我们的用户

    yum install cyrus-sasl-devel cyrus-sasl-plain

    指定日志级别,设置 mech_list 为 plain,告诉 memcached 它应该使用自己的密码文件并验证明文密码,指定用户数据库文件

    [root@ansible002 ~]# mkdir -p /etc/sasl2/ [root@ansible002 ~]# cat /etc/sasl2/memcached.conf mech_list: plain log_level: 5 sasldb_path: /etc/sasl2/memcached-sasldb2

    使用用户凭据创建 sasl 数据库。-c 选项在我们的数据库中创建一个新的条目。我们这里使用用户名 kolla

    [root@ansible002 ~]# saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 kolla Password: Again (for verification):

    授予 memcached 用户 sasl 数据库所有权

    [root@ansible002 ~]# chown memcached:memcached /etc/sasl2/memcached-sasldb2

    重启 memcached

    [root@ansible002 ~]# systemctl restart memcached

    检查,我们上面设置 kolla 用户密码为 321321

    [root@ansible002 ~]# memstat --servers="127.0.0.1" --username=kolla --password=321321 Server: 127.0.0.1 (11211) pid: 1905345 uptime: 40 time: 1602138612 version: 1.5.6 ... 允许远程访问 memcache

    修改 /etc/sysconfig/memcached 中 OPTIONS 127.0.0.1 为服务器 ip

    [root@ansible002 ~]# cat /etc/sysconfig/memcached PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 192.168.1.107 -U 0 -S -vv"

    重启服务 memcached

    [root@ansible002 ~]# systemctl restart memcached

    防火墙开放端口,略

    在 k8s01 上使用 python python-binary-memcached 验证

    [root@k8s01 ~]# pip install python-binary-memcached [root@k8s01 ~]# python Python 2.7.5 (default, Jun 20 2019, 20:27:34) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import bmemcached >>> client = bmemcached.Client(('192.168.1.107:11211',),'kolla','321321') >>> client.set("foo","boor") True >>> client.get("foo") 'boor'

    参考文章:

    https://cloud.tencent.com/developer/article/1162013

    https://www.cnpython.com/pypi/python-binary-memcached

    Processed: 0.011, SQL: 9