memcache数据库和redis数据库的区别(理论)

在了解了memcache集群和redis集群后,我产生了一些问题:

redis集群支持的存储类型多于memcache集群;redis集群支持数据的持久化,更能很好的保护数据完整性;

那么,为什么有的企业还是热衷于memcache集群呢?我们一起来思考下。

数据存储上的区别

在redis集群中,并不是所有的数据都一直保存在内存当中的,

而memcache的数据则是一直保存在内存中。

资源使用上的区别

redis使用单核,而memcache可以使用多核。

性能上的区别:

每一个核上的数据小于100K时,redis较快,反之memcache较快。

不过这并不是两者区别的重点,因为每秒处理请求的次数,不会是两者的瓶颈。

数据恢复的区别:

redis有数据持久化和主从复制,断电重启后,可以恢复数据。

memcache没有这些功能,断电重启后,数据丢失。

具体选择哪种集群,这个要看业务需求,如果不允许出现数据丢失,那么也只能选择redis了。

存储数据类别上的区别:

redis支持很存储表:key-value、hash表、list表等

memcache只支持key-value,不过memcache可以在内存中缓存图片、视频等。

原文地址:http://blog.51cto.com/13690439/2120859

时间: 2024-10-07 01:39:00

memcache数据库和redis数据库的区别(理论)的相关文章

NoSQL数据库之Redis数据库:Redis的介绍与安装部署

 NoSQL(NoSQL = Not Only SQL),它指的是非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显的力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展. NoSQL的特点: 特点一: 是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循SQL标准.ACID属性.表结构等等,这

05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命令和服务器相关命令

 Redis常用命令 Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以再Linux终端使用. 键值相关命令: Keys:返回满足给定pattern的所有key 用表达式*表示取出所有的key 127.0.0.1:6379> keys * 1) "age" 2) "name" 3) "age2" 127.0.0.1:6379> keys a* 1) "age" 2) "age2&

python爬取大众点评并写入mongodb数据库和redis数据库

抓取大众点评首页左侧信息,如图: 我们要实现把中文名字都存到mongodb,而每个链接存入redis数据库. 因为将数据存到mongodb时每一个信息都会有一个对应的id,那样就方便我们存入redis可以不出错. # -*- coding: utf-8 -*- import re from urllib.request import urlopen from urllib.request import Request from bs4 import BeautifulSoup from lxml

Python数据库2.Redis数据库

2.1 NoSQL简介 NoSQL(Not Only SQL): No管L指的是非关系型数据库,是对不同于传统的关系型数据库的数据库理系统的统称,NOSQL是web2.0时代海里数据催生的产物. 特点: 1.不支持SQL语法: NoSQL的世界中没有一种通用的语言,每种nosq l数据库都有 自己的语法,以及擅长的业务场景 2.读写性能高: NoSQL数据军都具有非常高的读写性能,尤其在海里数据下, 它的表现非常优秀 3.灵活的数据模型: NOSQL的存储方式十分灵活,存储方式可以是JSON文档

07_NoSQL数据库之Redis数据库:Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存

 事务处理 Redis对事务的支持目前还比较简单.Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令.当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中的所有命令. 127.0.0.1:6379> get age (nil) 127.0.0.1:6379> multi OK                

06_NoSQL数据库之Redis数据库:Redis的高级应用之登录授权和主从复制

 Redis高级实用特征 安全性(登录授权和登录后使用auth授权) 设置客户端连接后进行任何其他指定前需要使用的密码. 警告:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒中进行150k次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解. 修改密码只需要在我们的配置文件中修改下面参数: #requirepass foobared Requirepass beijing     (红色的就是指定的要配置的密码) 上面的一句表示的是设置连接的口令是

03_NoSQL数据库之Redis数据库:list类型

 lists类型及操作 List是一个链表结构,主要功能室push,pop.获取一个范围的所有值等等,操作中key理解为链表的名字.Redis的list类型其实就是一个每个元素都是string类型的双向链表.我们可以通过push.pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列. lpush:在key对应list的头部添加字符串元素. rpush:在key对应的list的尾部添加字符串元素. linsert:在key对应list的特定位置前或后添加字符串.

02_NoSQL数据库之Redis数据库:string类型和hash类型

 Strings类型及操作 String是最简单的类型,一个key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比如jpg图片或者序列化的对象. Set 设置Key对应的值为string类型的value. 例如:我们添加一个name=lijie的键值对: 127.0.0.1:6379> set name toto OK //获取name的值: 127.0.0.1:6379> get name "toto" //再次重新设置

04_NoSQL数据库之Redis数据库:set类型和zset类型

 sets类型及操作 Set是集合,它是string类型的无序集合.set是通过hash table实现的,添加,删除和查找复杂度都是0(1).对集合我们可以取并集.交集.差集.通过这些操作我们可以实现sns中的好友推荐和blog的tag功能. sadd:向集合中添加一个元素,通名称为key的set中添加元素. [[email protected] bin]$ ./redis-cli 127.0.0.1:6379> sadd myset1 one (integer) 1 127.0.0.1: