Memcache基本配置


14

我已使用memcached pecl扩展名为Drupal网站安装了memcache。一切运行正常,但我仍在努力进行配置设置。

例如,遵循关于drupal.org的建议

You should probably lock down the memcache server so that it only listens for 
connections from the hosts that need to be served, as the default is that 
memcache listens to connections from all addresses. 
So, to close that hole, edit /etc/sysconfig/memcached with:

OPTIONS="-l ${HOSTIP}"

问题是我的服务器上没有此文件,无论如何不在此位置。其他一些文章提到了/etc/memcached.conf,但我也找不到该文件。

考虑到/ etc / sysconfig / memcached或/etc/memcached.conf没有在服务器上退出,我可以安全地创建它们吗?这些文件是否可能位于其他地方,在这种情况下,我应该在哪里查看或有什么方法可以找到该信息?

最后,将不胜感激任何资源,教程或文档链接。我已经浏览了memcache的站点Wiki,并且只能为初学者找到几篇相关的文章。


1
Drupal说明不正确。该-l选项规定memcached将侦听哪些接口,而不是将为哪些主机提供服务。
韦恩·康拉德

Answers:


17

您没有告诉我们您的操作系统/发行版。另外,您也没有告诉我们如何安装memcached。

通常情况下,你会得到下样本配置文件/etc/,当您安装使用memcached的apt-get下基于Debian的系统rpmyumredhat下的Fedora或CentOS的。

如果是从源代码安装的,则可能不会在下面获得示例文件/etc/(我自己也没有从源代码安装memcached)。但是,您可以在解压后的源文件夹中查找示例配置文件。

无论如何,您可以用来locate memcached.conf在系统中查找一个。您需要先执行sudo updatedb此操作才能更新搜索缓存。

这是我系统中的配置文件。您可以使用它:

# Run memcached as a daemon. This command is implied, and is not needed for the
# daemon to run. See the README.Debian that comes with this package for more
# information.
-d

# Log memcached's output to /var/log/memcached
logfile /var/log/memcached.log

# Be verbose
# -v

# Be even more verbose (print client commands as well)
# -vv

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default connection port is 11211
-p 11211
# Run the daemon as root. The start-memcached will default to running as root if no
# -u command is present in this config file
-u memcache

# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
-l 127.0.0.1

# Limit the number of simultaneous incoming connections. The daemon default is 1024
# -c 1024

# Lock down all paged memory. Consult with the README and homepage before you do this
# -k

# Return error when memory is exhausted (rather than removing items)
-M

# Maximize core file limit
# -r

您也可以从命令行传递相同的选项。


Debian GNU / Linux 5.0.9(lenny)/ memcached 1.4.10。为了安装memcache,我花了很多步骤,以至于我不记得自己是怎么做到的。由于缺少这些配置文件,因此可能是从源代码编译的。我知道肯定是从源代码安装了pecl扩展,仅仅是因为使用pecl不起作用。看着源文件夹,我不知道示例配置文件是什么...
PatrickS 2012年

@PatrickS:我更新了答案。
哈立德

我最终使用上述命令行选项创建了/etc/init.d/memcached来配置memcache
PatrickS 2012年

11

默认(CentOS)/ etc / sysconfig / memcached:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

初始化脚本(CentOS)/etc/init.d/memcached:

...
if [ -f /etc/sysconfig/memcached ];then
        . /etc/sysconfig/memcached
fi
...

如果文件存在,则上述内容相当于“来源”该文件(即读取和评估其内容)。

据我所知,memcached没有配置文件。例如,它使用命令行参数(来自RHEL / CentOS初始化脚本):

daemon --pidfile ${pidfile} memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P ${pidfile} $OPTIONS

(您会注意到,此处使用了上面定义的变量)。

因此,最重要的是:

  • 检查您的初始化脚本-如果它包含与上述脚本类似的部分(if语句),则可以肯定地创建匹配文件,并将适当的变量放入其中。
  • 没有配置文件-不要创建一个配置文件,因为它不会被使用。

3

如果您在CentOS上找不到/etc/init.d/memcached,请尝试以下操作:

nano /usr/lib/systemd/system/memcached.service

并更改:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

至:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -I $MAXITEMSIZE -c $MAXCONN $OPTIONS

添加完/ etc / sysconfig / memcached之后

MAXITEMSIZE="128m"

重新启动memcached

service memcached restart

要检查是否添加了参数,请尝试:

ps aux | grep memcached
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.