redis 缓存技术与memcache的最大差别

redis 缓存技术与memcache的最大差别

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

1 什么是redis 

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对很多其它,包含string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,并且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。差别的是redis会周期性的把更新的数据写入磁盘或者把改动操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。  

2 性能怎么样 

Redis是一个高性能的key-value内存数据库。官方性能測试结果: set操作每秒110000次,get操作每秒81000次。 

3 可不能够存对象 

和Memcached类似,它支持存储的value类型相对很多其它,包含string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。  

4 Redis与memcache的最大差别 

Replication(树形) 

data types(String、Lists、Sorted Sets、Hashes) persistence (snapshot、aof) 

非常多开发人员都觉得Redis不可能比Memcached快,Memcached全然基于内存,而Redis具有持久化保存特性,即使是异步的,Redis也不可能比Memcached快。可是測试结果基本是Redis占绝对优势。一直在思考这个原因,眼下想到的原因有这几方面。 

Libevent。和Memcached不同,Redis并没有选择libevent。Libevent为了迎合通用性造成代码庞大(眼下Redis代码还不到libevent的1/3)及牺牲了在特定平台的不少性能。Redis用libevent中两个文件改动实现了自己的epoll event loop(4)。业界不少开发人员也建议Redis
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/118517.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • minicom指令_【教程】minicom使用教程

    minicom指令_【教程】minicom使用教程简介Linux下的Minicom的功能与Windows下的超级终端功能相似,可以通过串口控制外部的硬件设备.适于在linux通过超级终端对嵌入式设备行管理.同样也可以使用minicom对外置Modem进行控制.Minicom的配置第一次启动时:需对minicom进行配置:minicom-s启动出现配置菜单:+—–[configuration]——+|Filenamesand…

  • 博客备份小工具3「建议收藏」

    博客备份小工具3「建议收藏」接着博客转发小工具2,又弄了一个第三版。主要功能有:博客备份到本地、浏览备份到本地的博客、关键字搜索本地的博客和转发博客可以选择个人分类填写Tag标签。其实想了想,转发博客干嘛非要在本地客户端转发,

  • allocatememory(an out of memory)

    仅作为记录,大佬请跳过。仅需减小batchsize展示:即可运行。注博主的这个程序减小batchsize就行了,可能不同的博友们的程序不一样,也有的大佬博主使用不计算梯度或释放内存的方式不计算梯度——传送门withtorch.no_grad()释放内存——传送门ifhasattr(torch.cuda,’empty_cache’): torch.cuda.empty_cache()…

  • A Painless Q-learning Tutorial (一个 Q-learning 算法的简明教程)

    本文是对 http://mnemstudio.org/path-finding-q-learning-tutorial.htm 的翻译,共分两部分,第一部分为中文翻译,第二部分为英文原文。翻译时为方便读者理解,有些地方采用了意译的方式,此外,原文中有几处笔误,在翻译时已进行了更正。这篇教程通俗易懂,是学习理解Q-learning算法工作原理的绝佳入门材料。

  • CANalyzer_InstallationQuickStartGuide[通俗易懂]

    CANalyzer_InstallationQuickStartGuide[通俗易懂]OverviewOperatingconceptIfyouarestartingupCANalyzerforthefirsttime,anditsfunctionalityandcontrolsarestillcompletelynewtoyou,thefollowingtourwillhelpyoutobecomefamiliar…

  • UML时序图总结

    UML时序图总结序列图主要用于展示对象之间交互的顺序。  序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。  消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。   序列图中涉及的元素:  1. 生命线:

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号