redis 和 memcached

memcached简介:

高性能分布式内存缓存服务器。其本质上就是一个内存key-value数据库,但是不支持数据的持久化,服务器关闭之后数据全部丢失。

redis简介:

Redis是一个开源的key-value存储系统。与Memcached类似,Redis将大部分数据存储在内存中。

  • 支持的数据类型包括:字符串string、哈希表hash、链表list、集合set、有序集合zset以及基于这些数据类型的相关操作。

  • 读:110000次/s 写:81000次/s

  • 原子性:redis所有操作都是原子性的。

  • 支持持久化,主从复制。

  • 支持过期时间,支持事物,消息订阅。

memcached 和 redis的区别:
  1. memcached仅支持简单的key-value结构数据;

    redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储;

  2. Memcached不支持数据的备份;

    redis支持数据的备份,即master-slave模式的数据备份;

  3. Memcached不支持数据持久化操作,是全内存的数据缓冲系统;

    redis支持数据的持久化(采取磁盘存储机制)和数据恢复,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用,而且提供两种主要的持久化策略:RDB快照和AOF日志;

  4. Redis和Memcache都是将数据存放在内存中,都是内存数据库;

    memcache还可用于缓存其他东西,例如图片、视频等等;

  5. 应用场景不一样:memcached适合于缓存SQL语句、数据集、用户临时性数据、延迟查询数据和session等;

    redis出来作为NoSQL数据库使用外,还能用做消息队列、数据堆栈和数据缓存等;

  6. memcached是高性能分布式内存缓存服务;
    redis是一个开源的key-value存储系统,Nosql数据库;

  7. memcached需要将数据拿到客户端进行修改再set到服务端;
    redis支持服务器端的数据操作;

  8. memcached可以使用多核,redis只使用单核;
    在存储小数据时,平均每一个核上redis比memcached性能更高;
    在100k以上的数据时,memcached性能要高于Redis

  9. memcached本身并不支持分布式,因此只能在客户端通过一致性哈希这样的分布式算法来实现Memcached的分布式存储(集群模式);
    redis(最新版本)支持分布式存储功能(集群模式);

  10. memcache在并发场景下,用cas保证数据一致性;
    redis事务支持比较弱,只能保证事务中的每个操作连续执行;