开发者门户

浅述MongoDB的管理操作

转载
不知不觉房产系统已经使用MongoDB一年多了,记得一年多以前,正是NOSQL被热炒时,MongoDB更是作为NOSQL中的佼佼者,被炒得火烫,也应该就在当时被这股火烫着了,所以义无反顾的选择了MongoDB,现在想想当时确实有些冲动了,当时MongoDB的资料还是比较少,更别说中文资料了,后来还出现使用MongoDB成功应用的范例Foursquare的宕机事件。现在确实应该很感谢MongoDB为我们的系统服务了一年了,在这一年的时间里,确实出现过不少的小问题,特别是在管理操作上,我想这大概也是因为MongoDB在系统维护上不如Mysql那样有着各种的业界实践,往往就只能通过管理员自己去摸索。
下面将在这一年的一些简单的管理操作做一下记录

Starting and Stopping Mongo
Security and Authentication
Monitoring and Diagnostics
Backups

Starting and Stopping Mongo

MongoDB启动
对了,MongoDB在linux下是无需安装的,从官网上下载下安装包后解压,直接执行mongod,就可以启动MongoDB服务器,当然mongod还有很多的启动选择项,运行mongod --help就可以查看所有的选择项。

Redis常用命令二

Redis根本是使用内存存储,持久化的关键是这三条指令:SAVE BGSAVE LASTSAVE …
  当接收到SAVE指令的时候,Redis就会dump数据到一个文件里面。
  值得一说的是它的独家功能:存储列表和集合,这是它与mc之流相比更有竞争力的地方。
  不介绍mc里面已经有的东东,只列出特殊的:
  TYPE key — 用来获取某key的类型
  KEYS pattern — 匹配所有符合模式的key,太淫荡了,比如KEYS * 就列出所有的key了,当然,复杂度O(n)
  RANDOMKEY - 返回随机的一个key
  RENAME oldkey newkey — key也可以改名
  列表操作,精华
  RPUSH key string — 将某个值加入到一个key列表头部
  LPUSH key string — 将某个值加入到一个key列表末尾
  LLEN key — 列表长度
  LRANGE key start end — 返回列表中某个范围的值,相当于mysql里面的分页查询那样
  LTRIM key start end — 只保留列表中某个范围的值
  LINDEX key index — 获取列表*****定索引号的值,要注意是O(n)复杂度

Redis常用命令一

转载 http://blog.163.com/czg_e/blog/static/46104561201122410916415/

Redis::__construct
描述:
创建一个Redis客户端
范例:
$redis = new Redis();

connect, open
描述:
实例连接到一个Redis.
参数:host: string port: int
返回值:BOOL 成功返回:TRUE;失败返回:FALSE
范例:
$redis->connect(‘127.0.0.1′, 6379);

get
描述:
获取有关指定键的值
参数:key
返回值:string或BOLL 如果键不存在,则返回 FALSE。否则,与此相关的关键值返回。
范例:
$redis->get(‘key’);

set
描述:
设置关键值参数
参数:Key Value
返回值:BOOL
范例:
$redis->set(‘key’, ‘value’)

setnx
描述:
如果在数据库中不存在该键,设置关键值参数
参数:key value
返回值:BOOL
范例:
$this->redis->setnx(‘key’, ‘value’); /* 返回 TRUE */

mongodb 文章索引

MongoDB 索引数据类型优化,节省60%内存 http://blog.nosqlfan.com/html/2064.html

Architecture by Accident http://blog.nosqlfan.com/html/2059.html

MongoDB IDE客户端   http://www.mongovue.com/

关于mongodb replset http://www.tech126.com/category/mongodb-2/

mongodb Replica Sets特点

mongodb Replica Sets特点:

数据冗余
自动故障切换
读可扩展
维护简单(对比主从分库)
从用户错误中灾难恢复

PHP 正确匹配 UTF-8 中文的正则

回头试试看

我以前一直用这个
preg_match('~[\x7f-\xff]+~is', $string, $tmp);
今天才发现,上面这个也会匹配到一些欧洲国家的字符

应该用下面这个,注意修正符 u
preg_match('~[\x{4e00}-\x{9fa5}]+~u', $string, $tmp);

PHP zlib函数库

zlib函数与file函数区别在于操作的文件类型不同,前者操作和处理.gz为后缀文件,使用方法类似于file函数操作,对于需要使用PHP制作gz文件非常实用。具体使用如下:
php_logo
一,gz文件打开/读写/关闭操作函数
gzopen — 打开一个gz文件(类似于fopen)
gzwrite — 写入gz文件(可安全用于二进制文件)(类似于fwrite)
gzputs — gzwrite的别名(类似于fputs)
gzread — 读取gz文件(可安全用于二进制文件)(类似于fread)
gzclose — 关闭一个已打开的gz文件指针(类似于fclose)

实例分析:
(1)gzopen打开一个.gz为后缀的文件用于读/写,注意,gzopen只能用于gzip格式文件
$fp = gzopen("/biuuu/biuuu.gz", "r");

(2)gzwrite或gzputs写入gz文件,如果不存在则新建.gz后缀文件
$string = 'welcome to www.biuu.com';
$gz = gzopen('biuuu.gz','w9');
gzwrite($gz, $string);
gzclose($gz);

(3)gzread读取整个gz文件

Hadoop hdfs Shell命令

调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式。 所有的的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。一个HDFS文件或目录比如/parent/child可以表示成hdfs://namenode:namenodeport/parent/child,或者更简单的/parent/child(假设你配置文件中的默认值是namenode:namenodeport)。大多数FS Shell命令的行为和对应的Unix Shell命令类似,不同之处会在下面介绍各命令使用详情时指出。出错信息会输出到stderr,其他信息输出到stdout。

cat

使用方法:hadoop fs -cat URI [URI …]

将路径指定文件的内容输出到stdout。

示例:

hadoop fs -cat hdfs://host1:port1/file1 hdfs://host2:port2/file2

Linux查找文件内容的常用命令方法

从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名
从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名
查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名
查找匹配的行数:
$ grep -c "被查找的字符串" 文件名
从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名
从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
find / -type f -name "*.log" | xargs grep "ERROR"

linux信号列表

运行如下命令,可看到Linux支持的信号列表:

$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1
36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5

linux编程:warning incompatible implicit declaration of built-in function ‘printf’

低级错误

请确认调用printf函数的文件引用了头文件

#include

pscp命令,向多台服务器传送文件

pscp -h /xxx/conf/datanode.list hbase-site.xml /xxx/sys/hbase/conf/hbase-site.xml

preg_match_all函数PREG_PATTERN_ORDER,PREG_SET_ORDER参数的区别

preg_match_all("|<[^>]+>(.*)]+>|U",
"example: this is a test",
$out, PREG_PATTERN_ORDER);
print_r($out);

echo '';

preg_match_all("|<[^>]+>(.*)]+>|U",
"example: this is a test",
$out, PREG_SET_ORDER);
print_r($out);

die;

=================================================================

Array
(
[0] => Array
(
[0] => example:
[1] => this is a test
)

[1] => Array
(

ecshop首页插入广告的方法

第一步:在后台
广告管理>>广告位置>>添加广告位

第二步:在后台
广告管理>>广告列表>>添加广告

第三步:在模板里添加可编辑区
在首页index.dwt文件里需要显示广告的位置
<!-- TemplateBeginEditable name="我的广告位一" -->
<!-- TemplateEndEditable -->

第四步:在后台
模板管理>>设置模板>>里选择你的广告位,把你刚才要加的广告添加进去就OK了

mysql修改远程访问权限的方法

  GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI
  TH GRANT OPTION;

mac os 系统下如何快速显示桌面?

按住command (就是空格键旁边那格带花的键) 不松手的情况下,再按F3,就可以直接显示桌面了,

如果想回到程序,再按F3,选择你想操作的程序就可以了。

Mac快捷键

刚从pc换到mac,复制粘帖还是想狠命按ctrl+c 和ctrl+V
于是就在Apple的官网上找到了这个,比网上很多版本全,贴出来分享给同病相怜的老pc新苹果们。

摘要
了解常见 Mac OS X 快捷键。快捷键方式即通过按下键盘上的组合键来调用 Mac OS X 中的功能。
要使用快捷键或组合键,您可以同时按修饰键和字符键。例如,同时按下 Command 键(标有 符号的按键)和“c”键会将当前选中的任何内容(文本、图形等等)拷贝至夹纸板。这也称作 Command-C 组合键(或快捷键)。
许多组合键中都包含修饰键。修饰键将改变 Mac OS X 对其他键击或鼠标点按动作的解释方式。修饰键包括 Command、Control、Option、Shift、Caps Lock 和(仅限便携式 Mac)fn 键。
以下是出现在 Mac OS X 菜单中的修饰键符号:
(Command 键)- 有些时候称为“Apple 键”;在 Apple 键盘上此按键还会有 Apple 标志 ()
(Control 键)
(Option 键)- 此按键上也可能标记“Alt”
(Shift 键)
(Caps Lock) - 切换大写字母锁定的开或关
fn(功能键)- 位于便携式 Mac 上内建键盘的左下角

受影响的产品

CentOS下vi的语法高亮问题

在CentoS下面使用root登录,执行vi时会发现没有语法高亮.
一般系统默认就把vi alias到vim才对.

在.bashrc中加上alias后搞定.
vi ~/.bashrc
alias vi=’vim’

vi ~/.vimrc
syntax on
set showcmd ” Show (partial) command in status line.
set showmatch ” Show matching brackets.
set ignorecase ” Do case insensitive matching
set smartcase ” Do smart case matching
set incsearch ” Incremental search
set autowrite ” Automatically save before commands like :next and :make
set hidden ” Hide buffers when they are abandoned

Linux中使用screen管理远程会话

http://stupig.is-programmer.com/posts/19498.html

你是不是经常需要ssh或者telent远程登录到Linux服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。还在用nohup吗?那么来看看screen吧,它会给你一个惊喜!

  元凶:SIGHUP信号

  让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。

  在Linux/Unix中,有这样几个概念:

进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。
会话期(session):一个或多个进程组的集合,有唯一一个会话期首进程(session leader)。会话期ID为首进程的ID。
会话期可以有一个单独的控制终端(controlling terminal)。与控制终端连接的会话期首进程叫做控制进程(controlling process)。当前与终端交互的进程称为前台进程组。其余进程组称为后台进程组。
  根据POSIX.1定义:

hadoop文档列表

同步内容