您的位置:首页 > 数据库 > Memcache

php下memcache的应用(四)——memcached服务器启动参数详解

2015-02-15 14:06 513 查看
memcached服务器和memcached客户端我们都已经安装完成了,下面就剩下如何使用它们,当然在此之前我们还有一个知识点需要了解下,在(二)中我们讲述了如何安装memcached的服务器,但是没有讲述如何启动它,今天我们就来看下如何启动它。打开memcached服务器的安装目录,打开bin文件夹,里面有一个memcached文件,这个就是我们启动memcached服务器的钥匙,再启动memcached之前,我们先来看下它都有什么样的参数

-u     
设定进程所属用户(只有root用户可以使用这个参数)


-d     以守护进程的方式运行

-l      监听的服务器IP地址,
默认:INADDR_ANY,所有地址


-m   分配给memcached服务器使用的内存数量,单位是MB,默认为64MB

-p    监听的TCP端口,默认为11211

-c 
最大运行的并发连接数,默认为1024

-P  
设置保存memcached的pid文件,只有在使用 -d 选项的时候才有意义。


参数-u,如果你是在普通用户环境下运行memcached的文件的话,你可以直接使用./memcached来启动memcached,但是如果你是在root环境下想要来启动memcached的时候,就会报错“can't run as root without the -u switch”,在root环境下,我们必须使用-u参数来指定用户,那么-u应该附带什么参数呢?经过测试,好像只要是linux下存在的用户均可作为memcached进程的所属用户,但是推荐使用web服务器所属用户(例如apache,httpd,www)或者daemon用户。

参数-d,说明中唯一不能一下看明白的就属“守护进程”了,什么是守护进程呢?我们来科普下,守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。还不明白,没关系我们来做个测试,首先在普通用户环境下运行memcached,我们是不是会发现,该操作居然没有结束?没办法在该终端下进行任何其他操作,那么memcached服务器到底成功启动了没呢,我们再打开另外一个终端,使用ps
aux | grep memcached(以下简写为ps)命令来检测下进程是否启动了,仔细一看还确实成功了,那么我们打断该操作或者关闭终端呢?在ps一下,是不是该进程是不是已经结束了?那么如果加上-d操作呢?我们来试下

./memcached -d我们会惊奇的发现,操作居然结束了,我们能在该终端下继续其他操作,那么是否真的启动成功了呢?我们再来使用ps来验证下,哇咔咔,居然启动成功了,是不是比不加-d参数用着更舒爽,嗯以后启动memcached的时候-d参数一定不要忘了哦。
参数-l,对于该参数网上资料不是很多,唯一看到的一点有价值的就是有一篇文章指出,默认情况下所有IP均可对该进程进行监听操作,这样存在安全隐患,我们需要指定一个固定的IP来监听该进程,例如我们指定127.0.0.1,那么非本机IP就不能监听该进程了。

参数-m,这个说明中已经说得比较清楚了,就是操作系统准备分配多少内存给memcached服务器使用

参数-p,指定一个监听的TCP端口,指定端口的时候不要跟现有的端口起冲突

参数-c,最大并发数,可以根据服务器的具体情况来设定(关于最大并发数小编了解不是很深,暂不在做详细介绍)。

参数-P,参数说明中还是比较详细的,唯一不解的地方就是为什么要保存这样的一个pid文件(暂且搁置,日后补充)

参数介绍的差不多了,下面就来应用一下吧,为了把参数应用全了,我们就以root环境为例

./memcached -u daemon -d -m 100 -p 11211 -c 100 -P /tmp/memcached.pid

上述命令代表memcached的服务器属于daemon用户,以守护进程运行,分配100MB内存供其使用,TCP端口为11211,最大并发数100,memcached.pid文件保存于/tmp文件夹中。
当然以上的参数并非是memcached服务器所有的参数,只是我们经常会用的一些参数,如果想要了解全部参数,我们可以使用打开memcached安装目录下的/share/man/man1/memcached.1文件,该文件下记录了memcached可以使用的所有参数信息。

知识小结:

1.普通用户启动memcached服务器不用附加任何参数,但是root用户必须使用-u参数来指定该进程所属的用户

2.如果不指定-d参数,那么开启该进程的终端就等于废了,因为你不能在该终端下在进行任何操作且不能关闭,一旦关闭终端或者退出./memcached操作,那么memcached服务器就会立刻关闭。

3.如果使用-P参数,别忘了使用-d参数,没有-d的-P是无意义的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息