Redis Memcache SSDB比较

来源:互联网 发布:电子数据交换技术 编辑:程序博客网 时间:2024/05/29 12:20

先来聊聊产品

redis是什么 国内官网 命令 php操作redis命令 学习手册

Redis 是一个开源(BSD许可)的,使用ANSI C语言编写的,支持网络、可基于内存亦可持久化日志型Key-Value数据库内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询. Redis 内置了 复制(replication), LUA脚本(Lua scripting), LRU驱动事件(LRU eviction), 事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel) 和自动 分区(Cluster)提供高可用性(high availability).

    你可以对这些类型执行 原子操作 , 列如: 字符串(strings)的append 命令; 散列(hashes)的hincrby命令; 列表(lists)的lpush命令; 集合(sets)计算交集sinter命令, 计算并集union命令 和 计算差集sdiff命令; 或者 在有序集合(sorted sets)里面获取成员的最高排名zrangebyscore命令.

    为了实现其卓越的性能, Redis 采用运行在 内存中的数据集工作方式. 根据您的使用情况, 您可以每隔一定时间将 数据集导出到磁盘 , 或者 追加到命令日志中. 您也可以关闭持久化功能,将Redis作为一个高效的网络的缓存数据功能使用.

    Redis 同样支持 主从复制(能自动重连和网络断开时自动重新同步),并且第一次同步是快速的非阻塞试的同步.



memcache是什么 官网 学习教程

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像视频文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

官方:

memcached is a high-performance, distributed memory object caching system, generic in nature, but originally intended for use in speeding up dynamic web applications by alleviating database load.

You can think of it as a short-term memory for your applications.

百度翻译:

Memcached是一个高性能的分布式的内存对象缓存系统,一般性的,但原本打算用于加速动态Web应用程序,减轻数据库负载。
你可以把它作为一个短期记忆为你的应用。


SSDB是什么  官网  命令

SSDB 是一个C/C++ 开发的高性能 NoSQL 数据库, 使用 Google 公司开源的LevelDB 引擎作为底层的存储引擎支持 zset(sorted set), map(hash), kv, list 等数据结构, 用来替代或者与 Redis 配合存储十亿级别列表的数据,支持丰富的数据结构,基于本地存储。

SSDB 在 QIHU 360 被大量应用, 非常稳定. 而且, SSDB 支持在线备份功能, 可以通过网络备份数据, 不再担心数据丢失. SSDB 还支持主从同步复制(Replication), 可用于负载均衡.

更重要的是, SSDB 支持 Redis 中的 zset 数据类型, 以及 hashmap 类型, 所以不是一个简单的 KV 存储服务器, 实际应用中, KV 存储的局限性非常大.


下面聊聊特性

Redis特性

  • 支持事务(Transactions)
  • 过期自动删除key
  • 内存回收
  • 客户端 API 支持的语言包括: C++, PHP, Python, Java, Go..
  • 持久化的队列服务以及复杂的数据类型
  • 主从复制, 负载均衡【能自动重连和网络断开时自动重新同步】
  • 基于内存存储 速度快并且可以通过aof备份

Memcache特性

  • 内存存储,速度快,对于内存的要求高
  • 可以缓存非持久化内容包括音频视频等,并且对cpu要求很低。常常采用将 Memcached 服务端和一些 CPU 高消耗 Memory 低消耗应用部属在一起 。
  • Memcached 的很突出一个优点,就是采用了可分布式扩展的模式。可以将部属在一台机器上的多个 Memcached 服务端或者部署在多个机器上的 Memcached 服务端组成一个虚拟的服务端,对于调用者来说完全屏蔽和透明。提高的单机器的内存利用率 。
  • 集中式 Cache :避开了分布式 Cache 的传播问题,但是需要非单点保证其可靠性,这需要 cluster 的工作,可以将多个 Memcached 作为一个虚拟的 cluster ,同时对于 cluster 的读写和普通的 memcached 的读写性能没有差别。
  • 客户端 API 支持的语言包括: C++, PHP, Python, Java, Go...
  • Cache 机制简单: 首先它没有什么同步,消息分发,两阶段提交等等,它就是一个很简单的 Cache ,把东西放进去,然后可以取出来,如果发现所提供的 Key 没有命中,那么就很直白的告诉你,你这个 key 没有任何对应的东西在缓存里,去数据库或者其他地方取,当你在外部数据源取到的时候,可以直接将内容置入到 Cache 中,这样下次就可以命中了 。
  • 主从复制, 负载均衡

SSDB特性

  • 替代 Redis 数据库, Redis 的 100 倍容量
  • LevelDB 网络支持, 使用 C/C++ 开发
  • Redis API 兼容, 支持 Redis 客户端
  • 适合存储集合数据, 如 list, hash, zset...
  • 客户端 API 支持的语言包括: C++, PHP, Python, Java, Go
  • 持久化的队列服务
  • 主从复制, 负载均衡
  • 基于本地存储 对内存消耗极小

对比


redis与memcache在上一篇已经对比过了 在这里就不对比了

0 0
原创粉丝点击