Redis 与 Memcache 的区别

MemCache

  • 多线程、异步I/O,可以充分利用多核 CPU 的优势,性能优秀
  • 功能简单,使用内存存储数据
  • 限制
    • key 小于 250B
    • value 小于 1M
    • key 最大失效时间小于 30 天
    • 只支持 K-V 结构,不支持持久化和主从同步

Redis

  • 单线程(可以借助多进程,以更好的发挥单机性能)
    • 异步非阻塞I/O(多路复用)
      • 多路:多个网络连接
      • 复用:复用同一个线程
    • 避免多线程上下文切换的代价
    • 避免多线程造成各种锁的问题
  • 数据在内存存储,支持持久化
  • 支持更多的数据类型,list、hash、set等
  • 主从 Sentinel +集群 Cluster,能够提供高可用服务