专栏首页码神联盟缓存 | redis和memecache的异同以及应用场景

缓存 | redis和memecache的异同以及应用场景

缓存就是数据交换的缓冲区Cache。当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。

在互联网应用中最广泛的两类缓存技术redis和memecache,下面讲述两者的异同与选择。

1redis和memecache的应用场景

我们需要关注的是:

1:内存的使用率,对于key-value这样简单的数据储存,memcache的内存使用率更高。如果采用hash结构,redis的内存使用率会更高。当然,这些都依赖于具体的应用场景。

2:数据持久化和主从复制时,只有redis拥有这两个特性,如果你的目标是构建一个缓存在升级或者重启后之前的数据不会丢失的话,那也只能选择redis。

3:操作,redis支持很多复杂的操作,甚至只考虑内存的使用情况,在一个单一操作里你常常可以做很多,而不需要将数据读取到客户端中(这样会需要很多的IO操作)。这些复杂的操作基本上和纯GET和POST操作一样快,所以你不只是需要GET/SET而是更多的操作时,redis会起很大的作用。

结论:对于两者的选择还是要看具体的应用场景,如果需要缓存的数据只是key-value这样简单的结构时还是采用memcache,它也足够的稳定可靠。如果涉及到存储,排序等一系列复杂的操作时,有持久化需求或者对数据结构和处理有高级要求时,毫无疑问选择redis。

2redis和memecache的异同

1、存储方式:

memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小

redis有部份存在硬盘上,这样能保证数据的持久性,支持数据的持久化。

2、数据支持类型:

redis在数据支持上要比memecache多的多。

3、使用底层模型不同:

新版本的redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

本文分享自微信公众号 - 码神联盟(lkchatspace)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一个go语言实现的短链接服务

    一个go语言实现的短链接服务 首先,博客转移到 wusay.org 了,去年没交费,博客都没了。。。刚刚恢复过来,以前的文章没了,慢慢补吧。 什么是短链接服务 ...

    李海彬
  • centos7编译安装Redis

    redis能够兼容绝大部分的POSIX系统,比如Linux、OS X、OpenBSD、NetBSD、FreeBSD,其中比较典型的是Linux操作系统(如Cen...

    行 者
  • 一个go语言实现的短链接服务

    一个go语言实现的短链接服务 首先,博客转移到 wusay.org 了,去年没交费,博客都没了。。。刚刚恢复过来,以前的文章没了,慢慢补吧。 什么是短链接服务 ...

    李海彬
  • Redis单线程架构

    redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库服务。 引出单线程模型 开启三个redis-cli客户端同时执行命令 客户端1设置一个字...

    行 者
  • redigo 连接池代码分析

    结构体分析 type Pool struct { // 用来创建redis连接的方法 Dial func() (Conn, error) ...

    李海彬
  • 连接redis

    使用Redigo这个库 package main import ( "fmt" "redis" "time" "strconv" ) var ( ...

    李海彬
  • NoSQL | Redis、Memcache、MongoDB特点、区别以及应用场景

    本篇文章主要介绍Nosql的一些东西,以及Nosql中比较火的三个数据库Redis、Memcache、MongoDB特点、区别以及应用场景。

    码神联盟
  • 使用Redis做MyBatis的二级缓存

    使用Redis做MyBatis的二级缓存  通常为了减轻数据库的压力,我们会引入缓存。在Dao查询数据库之前,先去缓存中找是否有要找的数据,如果有则用缓存中的数...

    java达人
  • Redis数据结构和内部编码

    type命令时间返回的就是当前键的 数据结构类型,分别为:string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合),但是...

    行 者
  • Redis全局命令

    redis有5种数据结构,他们是键值对中的值,对于键来说有一些通用的命令。 查看所有键 语法:keys * [root@vultr ~]# redis-cli ...

    行 者

扫码关注云+社区

领取腾讯云代金券