转至:http://developer.51cto.com/art/201603/507980.htm

在今天的文章中,我们将探讨Redis(REmote DIctionary Server)。Redis是一套开源、内存内、键值存储方案。其亦可作为字典服务器接受引用,因为其中的键值并非单纯的字符串,而可包含散列、集、列表以及排序集等等。

Redis在表面上看与Memcached存在诸多共同点,但二者却又有着很大区别。

特性说明

  • 内存内: Redis将键值存储在主内存中,旨在加快读取与写入速度。
  • 复制: Redis支持主-从复制。相关数据访问可由从节点实现,而写入则可由主节点执行。复制过程具备可扩展性与可用性。如果任一从节点发生故障,其它从节点则继续提供数据访问支持。
  • 数据结构: Redis不仅存储字符串,同时亦包含列表、集、散列以及排序集等。
  • 虚拟内存: Redis利用RAM作为内存内存储机制。不过在RAM存储过程中,其实际使用虚拟内存进行数据承载。
  • 发布/订阅模式: Redis能够创建发布与订阅频道,各Redis客户端能够订阅任意频道以消费数据,而且订阅任意频道的客户端都能够进行数据发布。
  • 数据持久性: Redis会将内存内数据保留在文件系统当中以备定期检索。当Redis节点发生故障时,相关数据可由Redis Data文件进行恢复。

Redis还拥有一套富SDK支持集。大家可以点击此处获取其完整的客户端库列表。

另外还有不少高流量网站已经在使用Redis,其中包括:

  • Stack Overflow
  • Craigslist
  • Rackspace
  • Plugin support for Magento
  • GitHub

过去几年来,Redis阵容在规模上正日益壮大,感兴趣的朋友亦可点击此处查看BD-Engines网站计算得出的相关发展趋势。

缓存技术比拼:Redis与Memcached的同与不同的更多相关文章

  1. 网站缓存技术(Redis、Memcached、Ehcache)

    Redis 是什么? 通常而言目前的数据库分类有几种,包括 SQL/NSQL,,关系数据库,键值数据库等等等. 分类的标准也不一,Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点 ...

  2. 缓存技术PK:选择Memcached还是Redis?

    缓存技术PK:选择Memcached还是Redis? memcached完全剖析----------------->高质量文章 memcached的最佳实践方案 数据缓存系统-memcached ...

  3. 缓存技术PK:选择Memcached还是Redis(转)

    [IT168 技术]要Memcached还是要Redis?在构建一款现代且由数据库驱动的Web应用程序并希望使其拥有更为出色的性能表现时,这个问题总会时不时出现.并给每一位开发人员带来困扰.在考虑对应 ...

  4. 接入层高性能缓存技术nginx+redis利器OpenResty

    一. OpenRestyOpenResty是一个基于 Nginx与 Lua的高性能 Web平台,其内部集成了大量精良的 Lua库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极 ...

  5. 缓存算法及Redis、Memcached、Guava、Ehcache中的算法

    https://my.oschina.net/ffy/blog/501003 https://yq.aliyun.com/articles/622757 https://blog.csdn.net/s ...

  6. 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装

    redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...

  7. 分布式缓存技术redis学习(一)——redis简介以及linux上的安装

    redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...

  8. 分布式缓存技术redis系列(一)——redis简介以及linux上的安装

    redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...

  9. 分布式缓存技术PK:选择Redis还是Memcached?

    作者:田京昆(腾讯后台研发工程师) 来源:腾云阁(https://www.qcloud.com/community/article/129) Memcached和Redis,作为近些年最常用的缓存服务 ...

随机推荐

  1. Android-NDK编译:cocos2d-x(二)

    看了看NDK的文档....里面总是莫名的会提下windows需要cygwin环境... 但是cocos2d-x3.0alpha1 中, 编译samples的python脚本 cocos2d-x3/bu ...

  2. Foundation和UIKit框架组织图

    转自:http://fantom.iteye.com/blog/1776558

  3. BeginInvoke与Invoke的区别

    简单的讲就是 BeginInvoke不需要等待方法运行完毕,就会继续执行下面的代码 Invoke则必须等待Invoke中的代码运行完毕,才会继续执行下面的代码. 可以通过下面的项目测试上面所描述的观点 ...

  4. WPF常用控件样式集锦

    1.不规则形状按钮(通过更改path实现) <Style x:Key="ButtonStyleForPath" TargetType="{x:Type Button ...

  5. 提高c++性能的编程技术笔记

    需要时再创建对象,比如在类中用if new 而不是在构造函数里创建类的成员. 用char 指针而不是string可以节省构造和析构string的开销. 虚函数无法内联的性能损失.

  6. strcpy和memcpy的区别

    strcpy和memcpy都是标准C库函数,它们有下面的特点.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy函 ...

  7. android SDK Manager 上载失败

    android SDK Manager 下载失败如题,利用android SDK Manager 无法下载各个版本的SDK,是最近无法连接上谷歌的服务器吗?我用了网上说的在C:\WINDOWS\sys ...

  8. 十一、EnterpriseFrameWork框架的分层与系统业务的结合

    上章详细讲了EnterpriseFrameWork框架中的每个分层,这都是从技术层面来说明,也就是我们知道怎么来建一个控制器或一个业务对象,但开发过程中应该建一个什么样的控制器或业务对象了?本章的主要 ...

  9. Angular.js表单以及与Bootatrap的使用

    首先从angular.js的目录开始,如下图,知道了我们要学什么,然后再开始有目的的学习与对比. 1.从表达式开始: ng-app指令初始化一个 AngularJS 应用程序. ng-init指令初始 ...

  10. java中getBytes方法可能使图片文件产生的问题

    InputStream is = new FileInputStream(fl); ImageInputStream iis = ImageIO.createImageInputStream(is); ...