您的位置:首页 > 数据库 > Memcache

Redis Memcache SSDB比较

2016-08-02 11:03 330 查看
先来聊聊产品

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

Redis 是一个开源(BSD许可)的,使用ANSI C语言编写的,支持网络、可[b]基于内存[/b]亦可[b]持久化[/b]日志型、[b]Key-Value[/b]数据库。内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件.
它支持多种类型的数据结构,如 字符串(strings)散列(hashes)列表(lists)集合(sets), 有序集合(sorted
sets) 与范围查询, bitmapshyperloglogs地理空间(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在上一篇已经对比过了 在这里就不对比了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: