redis、memcached、mongoDB 对比与安装
一、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 对比与安装的更多相关文章
- redis memcached MongoDB
我们现在使用的模式是,对于直接的key value对需缓存的直接用memcached.对于collection类型就使用Redis.对于大数据量的内容性的东西,我们打算尝试用mongoDB.也正在学习 ...
- redis、mongodb、memcache安装好后设置开机自启动
vim /etc/rc.d/rc.local /usr/local/mongodb/bin/mongod --smallfiles /usr/local/bin/redis-server/usr/lo ...
- Redis ,Memcached ,Mongodb 对比
memcached: 1.适合做内存缓存,对可靠性没有要求,不支持持久化:速度快.并发高.2.支持的数据结构单一,只支持Key-value,3.value最大支持1M3.在传统tomcat 部署war ...
- HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比
最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...
- 面试阿里被分布式“搞懵”,Redis、MongoDB、memcached没答上来
都说大厂面试难,一点也没有错,一线大厂的面试究竟怎么样还得自己亲身经历了才知道.小白面试阿里,就被面试官吊打,一问分布式就被“搞懵”了,Redis.MongoDB.Memcached都没答好,很多没有 ...
- Memcached、Redis、Mongodb比较
Memcached(内存Cache) Memcached 是一个高性能的分布式内存对象缓存系统.通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库 ...
- 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 ...
- 面试题-Redis、MongoDB、Memcached[转]
https://blog.csdn.net/gangsijay888/article/details/81213811 一.缓存 搞懂缓存那些事:https://blog.csdn.net/a7248 ...
- Redis、MongoDB及Memcached的区别 Redis(内存数据库)
Redis.MongoDB及Memcached的区别 Redis(内存数据库) 是一个key-value存储系统(布式内缓存,高性能的key-value数据库).和Memcached类似,它支持存储的 ...
随机推荐
- github提交代码时,报permission denied publickey
在像github提交代码时,报permission denied publickey. 查找了一下,可能是因为github的key失效了. 按照以下步骤,重新生成key. ssh-keygen 一路默 ...
- 跟随 Web 标准探究DOM -- Node 与 Element 的遍历
写在前面 这篇没有什么 WebKit 代码的分析,因为……没啥好分析的,在实现里无非就是树的(先序DFS)遍历而已,囧哈哈哈……在WebCore/dom/Node.h , WebCore/dom/Co ...
- 大熊君学习html5系列之------History API(SPA单页应用的必备)
一,开篇分析 Hi,大家好!大熊君又和大家见面了,(*^__^*) 嘻嘻……,这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例, 让大家一步一步的体会" ...
- [Search Engine] 搜索引擎技术之查询处理
我们之前从开发者的角度谈了一些有关搜索引擎的技术,其实对于用户来说,我们不需要知道网络爬虫到底是怎样爬取网页的,也不需要知道倒排索引是什么,我们只需要输入我们的查询词query,然后能够得到我们想要的 ...
- 【bzoj4720】[NOIP2016]换教室
题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的 ...
- jQuery radio取值,checkbox取值,select取值
语法解释: $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 var checkTex ...
- PHP中的变量与常量详解
几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...
- Linux线程同步:条件变量
条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,它常和互斥锁一起使用.使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化.一旦其它 ...
- MySQL Cluster 数据分布(分区、分组)
数据分布 1.MySQL Cluster自动分区数据表(也可能使用用户自定义分区),将数据分布到分区中: 2.一个数据表被划分到多个Data Node分区中,数据在分区中被”striped”: 3.主 ...
- Alpha总结
一.预期计划 1.时间:11月7日--11月17日 2.小组分工 角色:程序员.美工.文档.测试 这个阶段以编码为主,每个组员参与编码,同时各自根据自己擅长的方面主要负责一个部分. 项目编码工作分工: ...