环境: 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'
参考文章:
共有条评论 网友评论