oneinstack memcached使用
使用oneinstack安装的环境,但memcached默认没有启动。不知道是不是我什么地方操作出现问题了,不过当前还是要启动memcached,是否是操作问题待以后使用新的vps时再看。
1、查看memcached是否启动:
ps -ef |grep memcached
如果没有返回进程则没有启动。
telnet 127.0.0.1 11211
显示连接被拒绝也是没有启动的表现。
2、启动memcached
执行:
systemctl start memcached
没有生效。
查看状态:
systemctl status memcached.service -l
输出:
[/usr/lib/systemd/system/memcached.service:21] Invalid environment assignment, ignoring: OPTIONS="-l 127.0.0.1"
提示的是环境变量OPTIONS无效:
编辑/usr/lib/systemd/system/memcached.service
文件:
vim /usr/lib/systemd/system/memcached.service
OPTIONS环境变量默认为:
Environment=OPTIONS="-l 127.0.0.1"
修改为:
Environment="OPTIONS=-l 127.0.0.1"
继续启动:
systemctl daemon-reload
systemctl start memcached
这次可以了。
更新:官方不建议直接修改 memcached.service 配置文件,因为升级软件包时可能会被覆盖。官方建议使用 systemctl edit 命令创建一个自定义的配置文件来覆盖默认配置。可以按照以下步骤操作:
运行以下命令创建一个覆盖文件:
systemctl edit memcached.service
在编辑器中添加以下内容:
[Service]
Environment="OPTIONS=-l 127.0.0.1"
3、测试缓存
创建一个test.php
<?php
$m = new Memcached();
$m->addServer( '127.0.0.1', 11211 );
$m->set( 'foo', 100 );
echo $m->get( 'foo' ) . "\n";
执行:
php -f test.php
如果能输出 100 表示缓存正常。
3、其他:
3.1 查看是否开机自启动:
systemctl is-enabled memcached
# 输出:enabled,说明已经设置了开机自启
3.2 手动启动(重启失效)。
执行:
/usr/local/memcached/bin/memcached -d -l 127.0.0.1 -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached.pid
这个生效了。
- -d 以daemon方式运行,将程序放入后台
- -l 监听的ip地址,127.0.0.1是本机,当然也可以写上你的服务器IP,如:10.0.0.10,这是我服务器的IP地址,如果你需要多个服务器都能够读取这台memcached的缓存数据,那么就必须设定这个ip
- -p 监听的TCP端口
- -u memcached的运行用户,我设定的是memcached
- -m memcached可以使用的最大内存数量
- -c memcached同时可以接受的最大的连接数
- -P memcached的pid文件路径
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。