缓存技术方面说到redis大家必然会联想到memcached,了解它们的人应该都知道以下几点吧

  • redis与 memcached相比,redis支持key-value数据类型,同事支持list、set、hash等数据结构的存储。
  • redis支持数据的备份,即master-slave模式的数据备份。
  • redis支持数据的持久化。
  • redis在很多方面支持数据库的特性,可以这样说他就是一个数据库系统,而memcached只是简单地K/V缓存。
  • 它们在性能方面差别不是很大,读取方面尤其是针对批量读取性能方面memcached占据优势。当然redis也有他的优点,如持久性、支持更多的数据结构。
  • 所以在选择方面如果有持久方面的需求或对数据类型和处理有要求的应该选择redis。
  • 如果简单的key/value 存储应该选择memcached。

memcached的存储机制为Slab Allocation机制。

简单的谈谈Slab Allcation机制

她的主要术语:1、Page------分配给Slab的内存空间,默认是1MB。分配给Slab之后根据slab的大小切分成chunk

        2、Chunk------用于缓存记录的内存空间

        3、Slab Class-----特定大小的Chunk组

memcached使用的场景:

  通常在电子商务系统中在网站的左侧会是商品的分类,中间是商品搜索结果的列表,可以查看商品信息和商家的基本信息和相关商家的信誉度信息。

  咋们一般的做法是:

  多次从数据库中查询全站的商品分类--->>递归形成你所需的分类tree--->>进入处理数据------->>显示到页面上

  memcached的做法:

  第一次显示的时候:判断memcached缓存中是否有该分类如果不存在执行SQL查询,然后放进memcached中,然后显示到界面

  第二次显示的时候:判断memcached缓存中是否有该分类如果存在直接读取memcached缓存,然后显示到界面

  若遇到更新的数据,找到memcached中与之对应的key值删除它,重新插入memcached缓存中。

  

  

浅谈redis和memcached的区别的更多相关文章

  1. 【转】细谈Redis和Memcached的区别

    Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较: Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支 ...

  2. $.ajax()方法详解 ajax之async属性 【原创】详细案例解剖——浅谈Redis缓存的常用5种方式(String,Hash,List,set,SetSorted )

    $.ajax()方法详解   jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Str ...

  3. Python 基于python+mysql浅谈redis缓存设计与数据库关联数据处理

    基于python+mysql浅谈redis缓存设计与数据库关联数据处理 by:授客  QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3 ...

  4. Redis与Memcached的区别

    传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量 ...

  5. 也谈谈 Redis 和 Memcached 的区别

    本文作者: 伯乐在线 - 朱小厮 . 说到redis就会联想到memcached,反之亦然.了解过两者的同学有那么个大致的印象: redis与memcached相比,比仅支持简单的key-value数 ...

  6. 【转载】Redis与Memcached的区别

    传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量 ...

  7. (转)Redis与Memcached的区别

    如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点: 1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储. 2 Redis支持 ...

  8. Redis 与 Memcached 的区别

    [转]Redis 与 Memcached 的区别 传统 MySQL + Memcached 架构遇到的问题     实际上 MySQL 是适合进行海量数据存储的,通过 Memcached 将热点数据加 ...

  9. Redis和Memcached的区别【转】

    如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储.2 Redis支持数据 ...

随机推荐

  1. bzoj 2141: 排队

    2141: 排队 Time Limit: 4 Sec Memory Limit: 259 MB Description 排排坐,吃果果,生果甜嗦嗦,大家笑呵呵.你一个,我一个,大的分给你,小的留给我, ...

  2. JS 小数的常用处理方法

    1.丢弃小数部分,保留整数部分 parseInt(5/2) 2.向上取整,有小数就整数部分加1 Math.ceil(5/2) 3,四舍五入. Math.round(5/2) 4,向下取整 Math.f ...

  3. 查看 SHA1

    keytool -v -list -keystore C:\Users\tianyingzhong\.android\debug.keystore 输入密钥库口令: android android

  4. 【转】[Intel/Nvidia]Ubuntu 16.04 LTS Intel/Nvidia双显卡切换

    1.在Unity中搜索 "Additional Drivers" 2.打开并选择以下选项 3.打开终端并输入 sudo apt-get install nvidia-361 4.安 ...

  5. Sharp Memory LCD (ls013b7dh03)驱动

    网上找不到什么靠谱的资料,甚至我调好了夏普原厂和代理商还来找我要demo,  哎,苦逼的码农. lcd_main.c #include "ls013b7dh03.h" #inclu ...

  6. 用Canvas实现动画效果

    1.清除Canvas的内容 clearRect(x,y,width,height)函数用于清除图像中指定矩形区域的内容 <!doctype html> <html> <h ...

  7. springmvc 文件上传实现(不是服务器的)

    1.spring使用了apache-commons下的上传组件,因此,我们需要引用2个jar包 1)apache-commons-fileupload.jar 2 ) apache-commons-i ...

  8. javascript 技巧总结积累(正在积累中)

    1.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect:当文字加亮后,产生该文件 & ...

  9. PHP错误以及异常处理

    以前一直觉得php的异常处理没有什么,现在才发现这个还真是门学问,于是狠下心来好好研究了一下,写一篇文章,也作备忘吧. 1. php错误 无论是什么语言编程,都会有如下三种错误,当然php也不例外. ...

  10. KMP模板

    参考:http://www.cnblogs.com/c-cloud/p/3224788.html #include<stdio.h> #include<string.h> vo ...