• 技术文章 >后端开发 >php教程

    php面试题六之memcache和redis的区别

    不言不言2018-04-18 09:47:26原创4237

    这篇文章介绍的内容是关于php面试题六之memcache和redis的区别,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

    Memcache和Redis区别:
    * Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcache相比一个最大的区别。
    * Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcache只是简单的K/V缓存。
    * 他们的扩展都需要做集群;实现方式:master-slave、Hash。
    * 在100k以上的数据中,Memcache性能要高于Redis。
    * 如果要说内存使用效率,使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcache。当然,这和你的应用场景和数据特性有关。
    * 如果你对数据持久化和数据同步有所要求,那么推荐你选择Redis,因为这两个特性Memcache都不具备。即使你只是希望在升级或者重启系统后缓存数据不会丢失,选择Redis也是明智的。
    * Redis和Memcache在写入性能上面差别不大,读取性能上面尤其是批量读取性能上面Memcache更强
    共同点:Memcache,Redis 都是内存数据库

    区别:
    Memcache
    Memcache可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS,适用于最大程度扛量
    只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。
    无法进行持久化,数据不能备份,只能用于缓存使用,且重启后数据全部丢失

    Redis
    支持多种数据结构,如string,list,dict,set,zset,hyperloglog
    单线程请求,所有命令串行执行,并发情况下不需要考虑数据一致性问题。
    支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手段。
    aof的压缩规则 比如一个key添加再删除 就会过滤
    支持通过Replication进行数据复制,通过master-slave机制,可以实时进行数据的同步复制,支持多级复制和增量复制.
    支持pub/sub消息订阅机制,可以用来进行消息订阅与通知。
    支持简单的事务需求,但业界使用场景很少,并不成熟

    Memcache和Redis区别:
    * Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcache相比一个最大的区别。
    * Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcache只是简单的K/V缓存。
    * 他们的扩展都需要做集群;实现方式:master-slave、Hash。
    * 在100k以上的数据中,Memcache性能要高于Redis。
    * 如果要说内存使用效率,使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcache。当然,这和你的应用场景和数据特性有关。
    * 如果你对数据持久化和数据同步有所要求,那么推荐你选择Redis,因为这两个特性Memcache都不具备。即使你只是希望在升级或者重启系统后缓存数据不会丢失,选择Redis也是明智的。
    * Redis和Memcache在写入性能上面差别不大,读取性能上面尤其是批量读取性能上面Memcache更强
    共同点:Memcache,Redis 都是内存数据库

    区别:
    Memcache
    Memcache可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS,适用于最大程度扛量
    只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。
    无法进行持久化,数据不能备份,只能用于缓存使用,且重启后数据全部丢失

    Redis
    支持多种数据结构,如string,list,dict,set,zset,hyperloglog
    单线程请求,所有命令串行执行,并发情况下不需要考虑数据一致性问题。
    支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手段。
    aof的压缩规则 比如一个key添加再删除 就会过滤
    支持通过Replication进行数据复制,通过master-slave机制,可以实时进行数据的同步复制,支持多级复制和增量复制.
    支持pub/sub消息订阅机制,可以用来进行消息订阅与通知。
    支持简单的事务需求,但业界使用场景很少,并不成熟

    相关推荐:

    php面试题五之nginx如何调用php和php-fpm的作用和工作原理

    php面试题四之实现autoload

    php面试题三之yii2和yii的不一样的地方

    以上就是php面试题六之memcache和redis的区别的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:memcache redis php
    上一篇:php面试题五之nginx如何调用php和php-fpm的作用和工作原理 下一篇:php面试题七之nginx的负载均衡如何配置
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 整理总结nginx、php-fpm和mysql等的权限划分• 具有新特性的PHP5之异常处理机制_PHP教程• php 字符串各种处理方法实例详解_PHP教程• PHP采集程序中常用的函数_PHP教程• PHP缓存机制的具体讲解_PHP教程
    1/1

    PHP中文网