16.2.2.1  memcached命令行选项

memcached支持以下选项:

  • -u user

    如果您启动memcachedroot,请使用该-u选项指定执行 memcached的用户:

    $> memcached -u memcache
  • -m memory

    设置分配给 memcached用于对象存储的内存量。默认为 64MB。

    要增加分配给高速缓存的内存量,请使用该-m选项指定要分配的 RAM 量(以兆字节为单位)。您分配的 RAM 越多,您可以存储的数据就越多,因此您的缓存就越有效。

    警告

    不要指定大于可用 RAM 的内存分配。如果您指定的值太大,则为memcached分配的一些 RAM 会使用交换空间,而不是物理 RAM。这可能会导致存储和检索值时出现延迟,因为数据被交换到磁盘,而不是直接存储在 RAM 中。

    您可以使用vmstat 命令的输出来获取空闲内存,如 free列中所示:

    $> vmstat
    kthr      memory            page            disk          faults      cpu
    r b w   swap  free  re  mf pi po fr de sr s1 s2 -- --   in   sy   cs us sy id
    0 0 0 5170504 3450392 2  7  2  0  0  0  4  0  0  0  0  296   54  199  0  0 100

    例如,要分配 3GB 的 RAM:

    $> memcached -m 3072

    在使用 PAE 访问超过 4GB 限制的内存的 32 位 x86 系统上,您不能分配超过最大进程大小的 RAM。您可以通过运行memcached的多个实例来解决这个问题,每个实例监听不同的端口:

    $> memcached -m 1024 -p11211
    $> memcached -m 1024 -p11212
    $> memcached -m 1024 -p11213
    笔记

    在所有系统上,尤其是 32 位系统,请确保 除了内存设置之外,还为memcached应用程序留出足够的空间。例如,如果您有一个具有 4GB RAM 的专用 memcached主机,请不要将内存大小设置为超过 3500MB。如果不这样做,可能会导致意外退出或严重的性能问题。

  • -l interface

    指定网络接口/地址以侦听连接。默认是监听所有可用地址 ( INADDR_ANY)。

    $> memcached -l 198.51.100.110

    在memcached 1.2.5 中添加了对 IPv6 地址的支持 。

  • -p port

    指定用于连接的 TCP 端口。默认值为 18080。

    $> memcached -p 18080
  • -U port

    指定用于连接的 UDP 端口。默认值为 11211,0 关闭 UDP。

    $> memcached -U 18080
  • -s socket

    指定要侦听的 Unix 套接字。

    如果您在与客户端相同的服务器上运行memcached-s ,则可以使用以下 选项禁用网络接口并使用本地 Unix 套接字:

    $> memcached -s /tmp/memcached

    使用 Unix 套接字会自动禁用网络支持,并节省网络端口(允许您的 Web 服务器或其他进程使用更多端口)。

  • -a mask

    以八进制指定要用于 Unix 套接字的访问掩码。默认为 0700。

  • -c connections

    指定与memcached服务 的最大同时连接数。默认值为 1024。

    $> memcached -c 2048

    使用此选项可以减少连接数(以防止memcached 服务过载)或增加连接数以更有效地利用运行memcached服务器的 服务器。

  • -t threads

    指定处理传入请求时要使用的线程数。

    默认情况下,memcached配置为使用 4 个并发线程。线程提高了在缓存中存储和检索数据的性能,使用锁定系统来防止不同的线程覆盖或更新相同的值。要增加或减少线程数,请使用以下 -t选项:

    $> memcached -t 8
  • -d

    将memcached作为守护进程(后台)进程 运行:

    $> memcached -d
  • -r

    最大化核心文件限制的大小。如果发生故障,这将尝试将整个内存空间作为核心文件转储到磁盘,直到达到 setrlimit施加的任何限制。

  • -M

    当内存耗尽时,向客户端返回一个错误。这取代了从缓存中删除旧项目以为新项目让路的正常行为。

  • -k

    锁定所有分页内存。这会在使用前保留内存,而不是在新项目存储在缓存中时分配新的内存块。

    笔记

    您可以锁定多少内存有用户级别的限制。尝试分配超过可用内存的内存失败。您可以-u user使用ulimit -S -l NUM_KB在 shell 中为启动守护程序的用户(不是用户)设置限制

  • -v

    详细模式。在执行主事件循环时打印错误和警告。

  • -vv

    非常冗长的模式。除了由 打印的信息外 -v,还打印每个客户端命令和响应。

  • -vvv

    极其冗长的模式。除了 打印的信息外-vv,还显示内部状态转换。

  • -h

    打印帮助信息并退出。

  • -i

    打印memcachedlibevent许可证。

  • -I mem

    指定允许在memcached实例中存储对象的最大大小。大小支持单位后缀(k千字节, m兆字节)。例如,要将支持的最大对象大小增加到 32MB:

    $> memcached -I 32m

    您可以指定的最大对象大小为 128MB,默认值保持为 1MB。

    此选项是在 1.4.2 中添加的。

  • -b

    设置积压队列限制。积压队列配置有多少网络连接可以等待memcached处理。增加此限制可能会减少客户端收到的无法连接到memcached实例的错误,但不会提高服务器的性能。默认值为 1024。

  • -P pidfile

    将memcached 实例 的进程 ID 保存到file.

  • -f

    设置块大小增长因子。在分配新内存块时,新块的分配大小由默认的 slab 大小乘以该因子确定。

    要在不进行大量测试的情况下查看此选项的效果,请使用-vv命令行选项来显示计算出的楼板尺寸。有关详细信息,请参阅 第 16.2.2.9 节,“ memcached日志”

  • -n bytes

    为key+value+flags信息分配的最小空间。默认值为 48 字节。

  • -L

    在支持大内存页的系统上,启用大内存页使用。使用大内存页面使 memcached能够在一个大块中分配项目缓存,这可以通过减少访问内存时的未命中数来提高性能。

  • -C

    禁止使用比较和交换 (CAS) 操作。

    此选项是在memcached 1.3.x 中添加的。

  • -D char

    设置用作键前缀和 ID 之间分隔符的默认字符。这用于每个前缀的统计报告(请参阅 第 16.2.4 节,“获取memcached统计信息”)。默认为冒号 ( :)。如果使用此选项,统计信息收集将自动打开。stats detail on如果不使用,您可以通过向服务器发送命令来 启用统计信息收集 。

    此选项是在memcached 1.3.x 中添加的。

  • -R num

    设置每个事件进程的最大请求数。默认值为 20。

  • -B protocol

    设置绑定协议,即客户端连接默认的 memcached协议支持。选项是ascii, binaryauto。自动 ( auto) 是默认设置。

    此选项是在memcached 1.4.0 中添加的。