Redis配置文档
一、Redis的安装
1. 操作系统centOs5.8。
2. Download,extract and compile Redis with:
$wget
$tar xzf redis-2.4.17.tar.gz
$cd redis-2.4.17
$make
$make install
3. Terminal运行redis:
$./src/redis-server
4. 新打开Terminal,进行redis的客户端程序并测试
$./src/redis-cli
redis>set foo bar
OK
redis>get foo
“bar”
二、Redis扩展的配置
1. 操作系统centOs5.8。
2. 配置apache,php。
(1) Apache安装包httpd-2.2.11.tar.gz
Php安装包php-5.2.9.tar.gz
(2) 一般情况下,Linux默认安装了Apache。如果已经安装Apache,那我们就
先把它协卸载掉。
(3) 查看是否安装Apache通过命令
rpm -qa | grephttpd
可以看到是已经安装了httpd-2.2.3-11.el5_1.centos.3 那我们就把它卸载掉。 rpm -e httpd-2.2.3-11.el5_1.centos.3
如果出现这样的错误
error: Failed dependencies: httpd>= 2.2.0 is needed by (installed)
gnome-user-share-0.10-6.el5.i386
这里要先把gnome-user-share-0.10-6.el5.i386卸载掉,再卸载apache。 rpm -e gnome-user-share-0.10-6.el5.i386
rpm -e httpd-2.2.3-11.el5_1.centos.3
(4) 安装Apache
安装所需要的软件包我已经下载到 /usr/local/src,查看里边的文件有 ls /usr/local/src
cd /usr/local/src
解压apache
tar -zxvf httpd-2.2.11.tar.gz
进入解压的目录
cd httpd-2.2.11
并配置安装
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-expires --enable-cache --enable-mem-cache
然后执行
make
make install
安装完成后我们启动apache
/usr/local/httpd/bin/apachectl -k start
(5) 安装PHP
解压php
tar -zxvf php-5.2.9.tar.gz
进入php解压目录
cd php-5.2.9
配置
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/lib --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql --with-zlib --enable-mbstring --enable-xml
执行
make
make install
将php配置文档复制到/usr/local/lib
cp php.ini-dist /usr/local/lib/php.ini
(6) 配置Apache
现在配置apache关联php,打开apache配置文档
vi /usr/local/httpd/conf/httpd.conf
输入
/LoadModule
可以看到LoadModule php5_module modules/libphp5.so。 输入
/DocumentRoot
可以看到我们的根目录是
DocumentRoot "/usr/local/httpd/htdocs"
输入
/AddType
点击i进入插入编辑模式,移动光标
在下面新增
AddType application/x-httpd-php .php
点击 Esc 退出插入编辑模式
输入 /DirectoryIndex
回车查找
在前面新增index.php
点击 Esc 退出插入编辑模式
输入
:wq
(7) 配置PHP
打开php配置文档
vi /usr/local/lib/php.ini
输入
/timezone
回车查找
改成date.timezone = PRC
输入
/error_reporting
回车查找
改成
error_reporting = E_ALL
输入
:wq
回车,保存退出。
(8) 配置完成后,我们测试一下
在网站根目录创建一个phpinfo.php
vi /usr/local/httpd/htdocs/phpinfo.php
输入
<?php
phpinfo();
?>
保存退出
:wq
然后在浏览器打开http://localhost/phpinfo.php
3. 安装配置redis扩展
下载地址:https://github.com/owlient/phpredis/downloads
wget https:///owlient-phpredis-2.1.1-0-g5a07edc.tar.gz
tar zxf owlient-phpredis-2.1.1-1-g90ecd17.tar.gz
cd owlient-phpredis-90ecd17/
我的php是编译安装的所以执行
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
查看
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/redis.so 在vi /usr/local/lib/php.ini中添加
extension=redis.so
这一步要根据大家自己的php编译参数--with-config-file-scan-dir=/etc/php.d这个来决定把redis.so加在什么地方.
三、Redis状态页面的配置
1. 登录云警,进入REDIS任务创建页面,在“状态页面URL”输入框下,点击【下载
此文件】,将文件下载
2. 修改主机IP,将此文件加载至apache的根目录下。
3. 输入http://主机IP/redis_status.php,进入redis状态页面。
注释:启动状态页面时关闭防火墙
测试URL:http:// 222.44.46.40/redis_status.php
Mongodb配置文档
一、Mongodb的安装
1. 操作系统centOs5.8
2. wget
3. tar -xvf mongodb-linux-i686-2.0.3.tgz
mv mongodb-linux-i686-2.0.3.tgz /usr/local/mongodb
mkdir /user/local/mongodb/data
cd /usr/local/mongodb/bin
4. 新建配置文件,mongodb支持把参数写进配置文件,然后以配置文件的配置来启动,
我们此处也使用此方式。
(1) vi mongodb.conf
(2) dbpath = /data/db #数据文件存放目录
(3) logpath = /data/logs/mongodb.log #日志文件存放目录
(4) port = 27017 #端口
(5) fork = true #以守护程序的方式启用,即在后台运行
5. 启动Mongo程序,使用配置文件mongodb.conf定义的参数启动
./ --dbpath == /usr/local/mongodb/data
6. 另打开一个终端进入mongodb
cd /usr/local/mongodb/bin
./mongo
二、Mongodb扩展的安装
1. Apache和php的配置请参照redis中配置过程。
2. 安装配置mongodb的扩展
wget /get/mongo-1.2.7.tgz
tar zxvf mongo-1.2.7.tgz
cd mongo-1.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
//最后在php.ini中加入以下行并重启webserver
extension=mongo.so
三、Mongodb状态页面配置
1. 登录云警,进入mongodb任务创建页面,在“状态页面URL”输入框下,点击【下
载此文件】,将文件下载
2. 改主机IP和端口号,将此文件加载至apache的根目录下。
3. 输入http://主机IP/mongodb_status.php,进入mongodb状态页面。
注释:测试URL:http:// 222.44.46.40/mongodb.php
第二篇:memcache_redis_mongodb
关于redis、memcache、mongoDB的对比(整理)
(PHPer.yangwww.imop.us)
从以下几个维度,对redis、memcache、mongoDB做了对比。
1、性能
都比较高,性能对我们来说应该都不是瓶颈。
总体来讲,TPS方面redis和memcache差不多,要大于mongodb。
2、操作的便利性
memcache数据结构单一。(key-value)
redis丰富一些,数据操作方面,redis更好一些,较少的网络IO次数,同时还提供list,set,hash等数据结构的存储。
mongodb支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。
3、内存空间的大小和数据量的大小
redis在2.0版本后增加了自己的VM特性,突破物理内存的限制;可以对keyvalue设置过期时间(类似memcache)memcache可以修改最大可用内存,采用LRU算法。Memcached代理软件magent,比如建立10台4G的Memcache集群,就相当于有了40G。magent-s10.1.2.1-s10.1.2.2:11211-b10.1.2.3:14000
mongoDB适合大数据量的存储,依赖操作系统VM做内存管理,吃内存也比较厉害,服务不要和别的服务在一起。
4、可用性(单点问题)
对于单点问题,
redis,依赖客户端来实现分布式读写;主从复制时,每次从节点重新连接主节点都要依赖整个快照,无增量复制,因性能和效率问题,
所以单点问题比较复杂;不支持自动sharding,需要依赖程序设定一致hash机制。
一种替代方案是,不用redis本身的复制机制,采用自己做主动复制(多份存储),或者改成增量复制的方式(需要自己实现),一致性问题和性能的权衡
Memcache本身没有数据冗余机制,也没必要;对于故障预防,采用依赖成熟的hash或者环状的算法,解决单点故障引起的抖动问题。
mongoDB支持master-slave,replicaset(内部采用paxos选举算法,自动故障恢复),autosharding机制,对客户端屏蔽了故障转移和切分机制。
5、可靠性(持久化)
对于数据持久化和数据恢复,
redis支持(快照、AOF):依赖快照进行持久化,aof增强了可靠性的同时,对性能有所影响
memcache不支持,通常用在做缓存,提升性能;
MongoDB从1.8版本开始采用binlog方式支持持久化的可靠性
6、数据一致性(事务支持)
Memcache在并发场景下,用cas保证一致性
redis事务支持比较弱,只能保证事务中的每个操作连续执行
mongoDB不支持事务
7、数据分析
mongoDB内置了数据分析的功能(mapreduce),其他不支持
8、应用场景
redis:数据量较小的更性能操作和运算上
memcache:用于在动态系统中减少数据库负载,提升性能;做缓存,提高性能(适合读多写少,对于数据量比较大,可以采用sharding)
MongoDB:主要解决海量数据的访问效率问题。表格比较:
memcache
类型
数据类型内存数据库在定义value时就要固定数据类型redis内存数据库不需要
有字符串,链表,集合和有序集合
虚拟内存
过期策略
分布式
存储数据安全
灾难恢复
性能
1、类型——memcache和redis都是将数据存放在内存,所以是内存数据库。当然,memcache也可用于缓存其他东西,例如图片等等。
2、数据类型——Memcache在添加数据时就要指定数据的字节长度,而redis不需要。
3、虚拟内存——当物理内存用完时,可以将一些很久没用到的value交换到磁盘。
4、过期策略——memcache在set时就指定,例如setkey1008,即永不过期。Redis可以通过例如expire设定,例如expirename10。
5、分布式——设定memcache集群,利用magent做一主多从;redis可以做一主多从。都可以一主一从。
6、存储数据安全——memcache断电就断了,数据没了;redis可以定期save到磁盘。
7、灾难恢复——memcache同上,redis丢了后可以通过aof恢复。
Memecache端口11211
yum-yinstallmemcached
yum-yinstallphp-pecl-memcache
/etc/init.d/memcachedstart
memcached-d-p11211-umemcached-m64-c1024-P/var/run/memcached/memcached.pid-d启动一个守护进程
-p端口
-m分配的内存是M
-c最大运行并发数不支持支持magent不支持不支持支持支持master-slave,一主一从或一主多从使用save存储到dump.rdb中appendonlyfile(aof)用于数据恢复
-Pmemcache的pid
//0压缩(是否MEMCACHE_COMPRESSED)30秒失效时间//delete5是timeout
<?php
$memcache=newMemcache;
$memcache->connect('127.0.0.1',11211);
$memcache->set('name','yang',0,30);
if(!$memcache->add('name','susan',0,30)){
//echo'susanisexist';
}
$memcache->replace('name','lion',0,300);
echo$memcache->get('name');
//$memcache->delete('name',5);
printf"stats\r\n"|nc127.0.0.111211
telnetlocalhost11211statsquit退出
Redis的配置文件端口6379
/etc/redis.conf
启动Redis
redis-server/etc/redis.conf
插入一个值
redis-clisettest"phper.yang"
获取键值
redis-cligettest
关闭Redis
redis-clishutdown关闭所有
redis-cli-p6379shutdown
<?php
$redis=newRedis();
$redis->connect('127.0.0.1',6379);
$redis->set('test','HelloWorld');
echo$redis->get('test');
Mongodb
apt-getinstallmongo
mongo可以进入shell命令行
peclinstallmongo
Mongodb类似phpmyadmin操作平台RockMongo