一、redis、memcached、mongoDB 对比

Memcached 和 Redis都是内存型数据库,数据保存在内存中,通过tcp直接存取,速度快,并发高。Mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据。

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached 的分布式不是在服务器端实现的,而是在客户端应用中实现的,即通过内置算法制定目标数据的节点,Memcached 的分布式是基于客户端的Key的hash来做均衡,是个伪分布式的系统。

Redis是一个key-value存储系统。和 Memcached 类似,它支持存储的value类型相对更多,包括string(字符串)、 list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与 Memcached 一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。

二、redis、memcached、mongoDB 的安装

*******************************************************redis安装,一键安装脚本后续附上*************************************

1、下载Redis2.8.19和安装Tcl-8.6.3

wget http://download.redis.io/releases/redis-2.8.19.tar.gz
wget http://downloads.sourceforge.net/tcl/tcl8.6.3-src.tar.gz
tar -zxf tcl8.6.3-src.tar.gz
cd tcl8.6.3/unix/
./configure
make
make install
tar -zxf redis-2.8.19.tar.gz
cd redis-2.8.19

2、编译

[root@localhost202 redis-2.8.19]# make

3、安装

[root@localhost202 redis-2.8.19]# make PREFIX=/usr/local/redis install 这步完了之后,Redis就被安装到了/usr/local/redis/ 下面了

4、配置,下面就是修改配置文件
cp ./redis.conf /usr/local/redis/
vim /usr/local/redis/redis.conf

daemonize yes #redis将以守护进程的方式运行,默认为no会暂用你的终端

timeout 300 #当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能

dir /data/redisdb #指定数据库持久化数据目录

mkdir -p /data/redisdb #创建redis数据存放目录

5、运行/开启Redis
/usr/local/redis/bin/redis-server

*******************************************************memcached安装,一键安装脚本后续附上*************************************

一、安装gcc、make和libevent
yum -y install gcc make

wget http://www.monkey.org/~provos/libevent-2.0.12-stable.tar.gz
tar zxf libevent-2.0.12-stable.tar.gz
cd libevent-2.0.12-stable
./configure
make && make install

二、下载memcached安装:
wget http://memcached.org/files/memcached-1.4.20.tar.gz
cd memcached-1.4.20
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/lib
make && make install

三、配置启动

# vi /etc/rc.local

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local

/usr/local/memcached/bin/memcached -p 12621 -U 0 -d -r -u root -m 2040 -c 1024 -t 4

保存后退出,手动启动服务
/usr/local/memcached/bin/memcached -p 12621 -U 0 -d -r -u root -m 2040 -c 1024 -t 4

*******************************************************mongoDB安装,一键安装脚本后续附上*************************************

1、下载安装

wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.1.tgz
tar -zxvf mongodb-linux-i686-2.0.2-rc2.tgz
mv mongodb-linux-i686-2.0.2-rc2 mongodb

在mongodb目录下新建一个data目录存放数据、新建一个log目录存放日志,然后在该目录下新建一个日志文件,命名为mongodb.log

mkdir log
mkdir data
cd log
touch mongodb.log

然后进入到mongodb/bin目录中

cd mongodb/bin
使用mongod命令建立一个mongodb数据库链接,端口号设置为100001,数据库的路径为/mongodb/data,日志路径为/mongodb/log/mongodb.log

2、启动测试
启动命令 :
 ./bin/mongod -port 10001 --dbpath data/ --logpath log/mongodb.log
all output going to: log/mongodb.log
使用客户端来连接该数据库
重新开启一个终端,然后切换到mongodb目录下:

cd usr/local/mongodb
然后使用bin/mongo命令来连接该数据库

./bin/mongo localhost:10001

通过浏览器访问
在浏览器地址栏输入: http://localhost:10001/ 然后回车访问
可以看到如下提示:You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
然后根据提示把端口号加上1000访问 http://localhost:11001/ 、
就能够访问到Monodb的服务端web页面

通过配置文件来配置Mongodb
首先在mongodb目录下新建一个文件,文件名任意,在这里我取名为:mongodb.conf

vi mongodb.conf
然后在配置文件中添加配置信息

port=10001
dbpath=data/
logpath=log/mongodb.log
logappend=true
解释说明:
port=10001【代表端口号,如果不指定则默认为 27017 】
dbpath=data/ 【数据库路径】
logpath=log/mongodb.log 【日志路径】
logappend=true 【日志文件自动累加,而不是覆盖】

启动Mongodb服务
./bin/mongod -f mongodb.conf
all output going to: log/mongodb.log
然后访问方式和之前的一样。

redis、memcached、mongoDB 对比与安装的更多相关文章

  1. redis memcached MongoDB

    我们现在使用的模式是,对于直接的key value对需缓存的直接用memcached.对于collection类型就使用Redis.对于大数据量的内容性的东西,我们打算尝试用mongoDB.也正在学习 ...

  2. redis、mongodb、memcache安装好后设置开机自启动

    vim /etc/rc.d/rc.local /usr/local/mongodb/bin/mongod --smallfiles /usr/local/bin/redis-server/usr/lo ...

  3. Redis ,Memcached ,Mongodb 对比

    memcached: 1.适合做内存缓存,对可靠性没有要求,不支持持久化:速度快.并发高.2.支持的数据结构单一,只支持Key-value,3.value最大支持1M3.在传统tomcat 部署war ...

  4. HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

  5. 面试阿里被分布式“搞懵”,Redis、MongoDB、memcached没答上来

    都说大厂面试难,一点也没有错,一线大厂的面试究竟怎么样还得自己亲身经历了才知道.小白面试阿里,就被面试官吊打,一问分布式就被“搞懵”了,Redis.MongoDB.Memcached都没答好,很多没有 ...

  6. Memcached、Redis、Mongodb比较

    Memcached(内存Cache) Memcached 是一个高性能的分布式内存对象缓存系统.通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库 ...

  7. centos7.6编译安装php7.2.11及redis/memcached/rabbitmq/openssl/curl等常见扩展

    centos7.6编译安装php7..11及redis/memcached/rabbitmq/openssl/curl等常见扩展 获取Php的编译参数方法: [root@eus-api-cms-bac ...

  8. 面试题-Redis、MongoDB、Memcached[转]

    https://blog.csdn.net/gangsijay888/article/details/81213811 一.缓存 搞懂缓存那些事:https://blog.csdn.net/a7248 ...

  9. Redis、MongoDB及Memcached的区别 Redis(内存数据库)

    Redis.MongoDB及Memcached的区别 Redis(内存数据库) 是一个key-value存储系统(布式内缓存,高性能的key-value数据库).和Memcached类似,它支持存储的 ...

随机推荐

  1. 带有“非简单参数”的函数为什么不能包含 "use strict" 指令

    非简单参数就是 ES6 里新加的参数语法,包括:1.默认参数值.2.剩余参数.3.参数解构.本文接下来要讲的就是 ES7 为什么禁止在使用了非简单参数的函数里使用 "use strict&q ...

  2. PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转

    [强烈推荐]下载地址(github.com/masterexploder/PHPThumb). 注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意. 在网站建设过 ...

  3. javascript数据结构-队列

    gihub博客地址 队列(Queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表.进行插 ...

  4. hash模块 hashlib 和hmac

    hashlib模块 用于加密相关的操作,代替md5模块和sha模块,主要提供SHA1,SHA224,SSHA256,SHA384,SHA512,MD5算法 直接看代码案例: ---------md5- ...

  5. python——连接MySQL数据库

    都是照着说明文档来的,主要是为了以后忘记了能快一点想起来. 1. 连接 安装MySQL的时候,自动按照了Python的模块,如果没有的话,也可以在官网下载. 看什么都不如看代码来得快: import ...

  6. mysql datatime 设置默认值为CURRENT_TIMESTAMP报错`Invalid default value`

    环境: Ubuntu mysql 5.5 解决方法: 升级mysql至5.6 apt-cache search mysql-server sudo apt-add-repository ppa:ond ...

  7. php中并发读写文件冲突的解决方案

    在这里提供4种高并发读写文件的方案,各有优点,可以根据自己的情况解决php并发读写文件冲突的问题. 对于日IP不高或者说并发数不是很大的应用,一般不用考虑这些!用一般的文件操作方法完全没有问题.但如果 ...

  8. assign more memory to Gradle

    Please assign more memory to Gradle in the project's gradle.properties file.For example, the followi ...

  9. 4. UIButton的使用

    1. UIButton的初认识 来自:http://www.cnblogs.com/mcj-coding/p/5103891.html QQ:853740091 1.1 UIButton 是iOS 开 ...

  10. SpringMVC与Ajax交互

    1 springmvc和ajax的交互 1.1  请求字符串响应json 客户端发送的数据:key=value&key1=value1 响应回来:json 1.1.1json的支持jar包 1 ...