memcached 启动参数的中文解释

Posted on 2012年6月12日 22:04

在线地址:https://github.com/liuxd/MyTranslation/blob/master/translation/memcached-1.4.man

全文内容:

memcached 1.4.2
-p <num>      监听的TCP端口(默认: 11211)
-U <num>      监听的UDP端口(默认: 11211, 0表示不监听)
-s <file>     用于监听的UNIX套接字路径(禁用网络支持)
-a <mask>     UNIX套接字访问掩码,八进制数字(默认:0700)
-l <ip_addr>  监听的IP地址。(默认:INADDR_ANY,所有地址)
-d            作为守护进程来运行。
-r            最大核心文件限制。
-u <username> 设定进程所属用户。(只有root用户可以使用这个参数)
-m <num>      单个数据项的最大可用内存,以MB为单位。(默认:64MB)
-M            内存用光时报错。(不会删除数据)
-c <num>      最大并发连接数。(默认:1024)
-k            锁定所有内存页。注意你可以锁定的内存上限。
              试图分配更多内存会失败的,所以留意启动守护进程时所用的用户可分配的内存上限。
              (不是前面的 -u <username> 参数;在sh下,使用命令"ulimit -S -l NUM_KB"来设置。)
-v            提示信息(在事件循环中打印错误/警告信息。)
-vv           详细信息(还打印客户端命令/响应)
-vvv          超详细信息(还打印内部状态的变化)
-h            打印这个帮助信息并退出。
-i            打印memcached和libevent的许可。
-P <file>     保存进程ID到指定文件,只有在使用 -d 选项的时候才有意义。
-f <factor>   块大小增长因子。(默认:1.25)
-n <bytes>    分配给key+value+flags的最小空间(默认:48)
-L            尝试使用大内存页(如果可用的话)。提高内存页尺寸可以减少"页表缓冲(TLB)"丢失次数,提高运行效率。
              为了从操作系统获得大内存页,memcached会把全部数据项分配到一个大区块。
-D <char>     使用 <char> 作为前缀和ID的分隔符。
              这个用于按前缀获得状态报告。默认是":"(冒号)。
              如果指定了这个参数,则状态收集会自动开启;如果没指定,则需要用命令"stats detail on"来开启。
-t <num>      使用的线程数(默认:4)
-R            每个连接可处理的最大请求数。
-C            禁用CAS。
-b            设置后台日志队列的长度(默认:1024)
-B            绑定协议 - 可能值:ascii,binary,auto(默认)
-I            重写每个数据页尺寸。调整数据项最大尺寸。

memcache 启动参数

Posted on 2012年5月03日 17:38

启动方式:

参数 说明
-d 以守护程序(daemon)方式运行
-u root 指定用户,如果当前为 root ,需要使用此参数指定用户
-P /tmp/a.pid 保存PID到指定文件

内存设置:

参数 说明
-m 1024 数据内存数量,不包含memcached本身占用,单位为 MB
-M 内存不够时禁止LRU,报错
-n 48 初始chunk=key+suffix+value+32结构体,默认48字节
-f 1.25 增长因子,默认1.25
-L 启用大内存页,可以降低内存浪费,改进性能

连接设置:

参数 说明
-l 127.0.0.1 监听的 IP 地址,本机可以不设置此参数
-p 11211 TCP端口,默认为11211,可以不设置
-U 11211 UDP端口,默认为11211,0为关闭

并发设置:

参数 说明
-c 1024 最大并发连接数,默认1024,最好是200
-t 4 线程数,默认4。由于memcached采用NIO,所以更多线程没有太多作用
-R 20 每个event连接最大并发数,默认20
-C 禁用CAS命令(可以禁止版本计数,减少开销)

检查正在运行的配置

$ echo "stats settings" | nc localhost 11211
STAT maxbytes 67108864
STAT maxconns 1024
STAT tcpport 11211
STAT udpport 11211
STAT inter NULL
STAT verbosity 0
STAT oldest 0
STAT evictions on
STAT domain_socket NULL
STAT umask 700
STAT growth_factor 1.25
STAT chunk_size 48
STAT num_threads 4
STAT stat_key_prefix :
STAT detail_enabled no
STAT reqs_per_event 20
STAT cas_enabled yes
STAT tcp_backlog 1024
STAT binding_protocol auto-negotiate
STAT auth_enabled_sasl no
STAT item_size_max 1048576
END

官网中描述

Running Memcached on Webservers
An easy layout is to use spare memory on webservers or compute nodes that you may have. If you buy a webserver with 4G of RAM, but your app and OS only use 2G of RAM at most, you could assign 1.5G or more to memcached instances.

This has a good tradeoff of spreading memory out more thinly, so losing any one webserver will not cause as much pain.

谷歌翻译后

运行Web服务器的Memcached
一个简单的布局是Web服务器或计算节点,您可能使用备用内存。如果你买了4G的RAM的Web服务器,但您的应用程序和操作系统只能使用2G的RAM,你可以分配1.5G或多个memcached实例。

这有一个较好的折中传播更多薄内存,所以失去任何一个Web服务器,不会造成多大的痛苦。

2. 参考资料

http://code.google.com/p/memcached/wiki/NewStart

mysql install

Posted on 2012年4月22日 02:45

简介:

 

两种安装方式:二进制文件安装和编译安装(本文使用二进制安装方式安装,有兴趣的童鞋自己尝试编译安装)

 

环境


ubuntu-11-10 32


准备

 

0.获取mysql-5.5.20-linux2.6-i686.tar.gz二进制安装文件 

 

具体步骤:

     mysql官网下载页面选择Linux-Generic下的Linux - Generic 2.6 (x86,32-bit), Compressed (位数适你的linux的位数而定。    我这里用的是32位的,所以我选择32位版本的mysql)

   你可以在ubuntu 中使用 wget 命令获取,或者任何一种下载工具都可以,只要有 mysql 的 tar.gz 安装文件就行。

 

  1. 1. wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.5/mysql-5.5.20-linux2.6-i686.tar.gz  

 

1.安装 mysql所使用的依赖 

        
  1. 1. sudo apt-get install libaio1  
 
安装过程

安装步骤参考mysql官方安装文档 
# 表示当前是 root 用户 
$ 表示当前普通用户 
pwd 表示当前所在目录 


 

 

0.添加mysql用户组

  1. 1. # groupadd mysql  
 
 

1.添加msyql用户到mysql用户组  

  1. 1. # useradd -r -g mysql mysql  
 

2.解压mysql-5.5.20-linux2.6-i686.tar.gz/usr/local进入/usr/local 

 

  1. 1. # cd /usr/local    

我的 tar.gz文件路径是/home/user/mysql-5.5.20-linux2.6-i686.tar.gz,你根据你的mysql安装文件路径调整命令参数
pwd: /usr/local

  1. 1. # tar zxvf /home/user/mysql-5.5.20-linux2.6-i686.tar.gz    

3./usr/local下添加名为mysql指向解压的文件夹的软连接

pwd: /usr/local

  1. 1. # ln -s mysql-5.5.20-linux2.6-i686 mysql    

4.进入mysql目录  

pwd:/usr/local 

  1. 1. # cd mysql    

5.设置mysql目录的拥有者和所属的用户组

pwd:/usr/local/mysql 

  1. 1. # chown -R mysql .    
  1. 2. # chgrp -R mysql .    

6.执行mysql安装脚本

pwd:/usr/local/mysql

  1. 1. # scripts/mysql_install_db --user=mysql   

7.再次设置mysql目录的拥有者 

pwd:/usr/local/mysql


  1. 1. # chown -R root .  

8.设置data目录的拥有者

pwd:/usr/local/mysql


  1. 1. # chown -R mysql data  

 


安装后配置

 

0.复制 mysql 配置文件

 

pwd:/usr/local/mysql 

 

  1. 1. # cp support-files/my-medium.cnf /etc/my.cnf  

1.启动mysql

pwd: /usr/local/mysql 

  1. 1. # bin/mysqld_safe --user=mysql &    


 

2.初始化root用户密码

pwd:/usr/local/mysql

  1. 1. # bin/mysqladmin -u root password 'new_password'    

3.复制mysql.server脚本  

pwd:/usr/local/mysql 

 

  1. 1. # cp support-files/mysql.server /etc/init.d/mysql.server  



好了,mysql配置基本完成
可以查看mysql的状态,结果可能是"MySQL is runnin"或者是"MySQL is not running" 

 

  1. 1. $ sudo /etc/init.d/mysql.server status   

 

如果一切顺利,mysql是正常运行的,而且输入刚才设置的new_password可以通过mysql客户端,进入mysql 

  1. 1. $ /usr/local/mysql/bin/mysql -u root -p    

可以使用命令:

mysql停止运行  

  1. 1. $ sudo /etc/init.d/mysql.server stop  

mysql启动

  1. 1. $ sudo /etc/init.d/mysql.server start   

查看状态  

  1. 1. $ sudo /etc/init.d/mysql.server status  

或者使用service命令,让mysql启动,停止  

 
  1. 1. $ sudo service mysql.server [status|start|stop]    

可选配置

 

0.mysql开机自己启动 

  1. 1. $ sudo update-rc.d -f mysql.server defaults    

 

如果不想让mysql开机自己启动,可以使用 

  1. 1. $ sudo update-rc.d -f mysql.server remove  

1./usr/local/mysql/bin/mysql命令加到用户命令中,这样就不用每次都加mysql命令的路径 

  1. 1. $ sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql    

 

现在就直接可以使用 mysql命令了 

 

  1. 1. $ mysql -u root -p    

 

本文档参考于:http://bastengao.iteye.com/blog/1161732

pgsql 常用命令

Posted on 2011年11月07日 22:16
\d [ table ]
列出数据库中的表,或(如果声明了)表 table 的列/字段.如果表名是用统配符 (“*”)声明的,列出所有表和表的列/字段信息.
\da
列出所有可用聚集.
\dd object
列出 pg_description 里对声明的对象的描述,对象可以是一个表,表中的列/字段,类型,操作符或聚集.
小技巧:并非所有对象在 pg_description 里有描述.此后期命令在快速获取 Postgres 内部特性时很有用.
\df
列出函数.
\di
只列出索引.
\do
只列出操作符.
\ds
只列出序列.
\dS
列出系统表和索引.
\dt
只列出非系统表.
\dT
列出类型.
\e [ filename ]
编辑当前查询缓冲或文件 filename 的内容.
\E [ filename ]
编辑当前查询缓冲或文件 filename 的内容并且在编辑结束后执行之.
\f [ separator ]
设置域分隔符.缺省是单个空白.
\g [ { filename | |command } ]
将当前查询输入缓冲送给后端并且(可选的)将输出放到 filename 或通过管道将输出送给一个分离的Unix shell 用以执行 command.
\h [ command ]
给出声明的 SQL 命令的语法帮助.如果 command 不是一个定义的 SQL 命令(或在 psql 里没有文档),或没有声明 command ,这时 psql将列出可获得帮助的所有命令的列表.如果命令 command 是一个通配符(“*”),则给出所有 SQL 命令的语法帮助.
\H
切换 HTML3 输出.等效于 -H 命令行选项.
\i filename
从文件 filename 中读取查询到输入缓冲.
\l
列出服务器上所有数据库.
\m
切换老式监视器样的表输出,这时表周围有边界字符包围着.这是标准 SQL 输出.缺省时,psql 只包括列/字段间的分隔符.
\o [ { filename | |command } ]
将后面的查询结果输出到文件 filename 或通过管道将后面结果输出到一个独立的Unix shell 里执行 command.如果没有声明参数,将查询结果输出到 stdout.
\p
打印当前查询缓冲区.
\q
退出 psql 程序.
\r
重置(清空)查询缓冲区.
\s [ filename ]
将命令行历史打印出或是存放到 filename.如果省略 filename ,将不会把后继的命令存放到历史文件中.此选项只有在 psql 配置成使用输入行时才有效.
\t
切换输出的列/字段名的信息头和行记数脚注(缺省是开).
\T table_options
允许你在使用HTML 3.0 格式输出时声明放在表 table ... 中的标记选项.例如,border 将给你的表以边框.这必须和 \H 后期命令一起使用.
\x
切换扩展行格式.当打开时,每一行将在左边打印列/字段名而在右边打印列/字段值.这对于那些不能在一行输出的超长行是很有用的.HTML 行输出模式也支持这个标记.
\w filename
将当前查询缓冲区输出到文件 filename.
\z
生成一个带有正确 ACL(赋予/禁止 权限)的数据库中所有表的输出列表.
\! [ command ]
回到一个独立的Unix shell或执行一个Unix 命令 command.
\?
获得关于反斜杠 (“\”) 命令的帮助.

 

一般选项

\c[onnect] [数据库名|- [用户名称]]
联接到新的数据库 (当前为 "test")
\cd [目录名]     改变当前的工作目录
\copyright       显示 PostgreSQL 用法和发布信息
\encoding [编码]
显示或设置客户端编码
\h [名字]        SQL 命令的语法帮助, 用 * 可以看所有命令的帮助
\q               退出 psql
\set [名字 [值]]
设置内部变量, 如果没有参数就列出所有
\timing          查询计时开关切换 (目前是 关闭)
\unset 名字      取消(删除)内部变量
\! [命令]        在 shell 里执行命令或者开始一个交互的 shell

信息选项

\d [名字]        描述表, 索引, 序列, 或者视图
\d{t|i|s|v|S} [模式] (加 "+" 获取更多信息)
列出表/索引/序列/视图/系统表
\da [模式]       列出聚集函数
\db [模式]       列出表空间 (加 "+" 获取更多的信息)
\dc [模式]       列出编码转换
\dC              列出类型转换
\dd [模式]       显示目标的注释
\dD [模式]       列出域
\df [模式]       列出函数 (加 "+" 获取更多的信息)
\dg [模式]       列出组
\dn [模式]       列出模式 (加 "+" 获取更多的信息)
\do [名字]       列出操作符
\dl              列出大对象, 和 \lo_list 一样
\dp [模式]       列出表, 视图, 序列的访问权限
\dT [模式]       列出数据类型 (加 "+" 获取更多的信息)
\du [模式]       列出用户
\l               列出所有数据库 (加 "+" 获取更多的信息)
\z [模式]        列出表, 视图, 序列的访问权限 (和 \dp 一样)

命令:     ABORT
描述:     终止当前事务
语法:
ABORT [ WORK | TRANSACTION ]

命令:     ALTER DATABASE
描述:     改变一个数据库
语法:
ALTER DATABASE 名字 SET 参数 { TO | = } { 值 | DEFAULT }
ALTER DATABASE 名字 RESET 参数
ALTER DATABASE 名字 RENAME TO 新名字
ALTER DATABASE 名字 OWNER TO 新属主
命令:     ALTER GROUP
描述:     改变一个用户组
语法:
ALTER GROUP 组名称 ADD USER 用户名称 [, ... ]
ALTER GROUP 组名称 DROP USER 用户名称 [, ... ]
ALTER GROUP 组名称 RENAME TO 新名称

命令:     ALTER INDEX
描述:     改变一个索引的定义
语法:
ALTER INDEX 索引名称
动作 [, ... ]
ALTER INDEX 索引旧名称
RENAME TO 索引新名称
动作为以下之一:
OWNER TO 新属主
SET TABLESPACE indexspace_name

命令:     ALTER SEQUENCE
描述:     改变一个序列生成器的定义
语法:
ALTER SEQUENCE 名字 [ INCREMENT [ BY ] 递增 ]
[ MINVALUE 最小值 | NO MINVALUE ] [ MAXVALUE 最大值 | NO MAXVALUE ]
[ RESTART [ WITH ] 开始 ] [ CACHE 缓存 ] [ [ NO ] CYCLE ]

命令:     ALTER TABLE
描述:     改变一个表的定义
语法:
ALTER TABLE [ ONLY ] 表名 [ * ]
action [, ... ]
ALTER TABLE [ ONLY ] 表名 [ * ]
RENAME [ COLUMN ] 字段名 TO 新字段名
ALTER TABLE 表名
RENAME TO 新表名
action 为下面的一种:
ADD [ COLUMN ] 字段名 类型 [ 字段约束 [ ... ] ]
DROP [ COLUMN ] 字段名 [ RESTRICT | CASCADE ]
ALTER [ COLUMN ] 字段名 TYPE 类型 [ USING 表达式 ]
ALTER [ COLUMN ] 字段名 SET DEFAULT 表达式
ALTER [ COLUMN ] 字段名 DROP DEFAULT
ALTER [ COLUMN ] 字段名 { SET | DROP } NOT NULL
ALTER [ COLUMN ] 字段名 SET STATISTICS integer
ALTER [ COLUMN ] 字段名 SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
ADD 表约束
DROP CONSTRAINT 约束名字 [ RESTRICT | CASCADE ]
CLUSTER ON 索引名称
SET WITHOUT CLUSTER
SET WITHOUT OIDS
OWNER TO 新属主
SET TABLESPACE 表空间名字

命令:     ALTER TRIGGER
描述:     改变一个触发器的定义
语法:
ALTER TRIGGER 名字 ON 表 RENAME TO 新名字

命令:     ALTER USER
描述:     改变一个数据库用户
语法:
ALTER USER name [ [ WITH ] option [ ... ] ]
where option can be:
CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
| VALID UNTIL 'abstime'
ALTER USER name RENAME TO newname
ALTER USER name SET parameter { TO | = } { value | DEFAULT }

命令:     COPY
描述:     在一个文件和一个表之间拷贝数据
语法:
COPY 表名 [ ( 字段 [, ...] ) ]
FROM { '文件名' | STDIN }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE NOT NULL column [, ...] ]

COPY 表名 [ ( 字段 [, ...] ) ]
TO { '文件名' | STDOUT }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE QUOTE column [, ...] ]

命令:     CREATE TABLE
描述:     定义一个新的表
语法:
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name (
{ column_name data_type [ DEFAULT default_expr ] [ column_constraint [ ... ] ]
| table_constraint
| LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] } [, ... ]
)
[ INHERITS ( parent_table [, ... ] ) ]
[ WITH OIDS | WITHOUT OIDS ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE tablespace ]

where column_constraint is:

[ CONSTRAINT constraint_name ]
{ NOT NULL |
NULL |
UNIQUE [ USING INDEX TABLESPACE tablespace ] |
PRIMARY KEY [ USING INDEX TABLESPACE tablespace ] |
CHECK (expression) |
REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
[ ON DELETE action ] [ ON UPDATE action ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

and table_constraint is:

[ CONSTRAINT constraint_name ]
{ UNIQUE ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
PRIMARY KEY ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
CHECK ( expression ) |
FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ]
[ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]