memcache & redis

连接方式

  • memcache:tcp & udp
  • redis: tcp & udp

事件模型

  • memcache: libevent 底层epoll
    • memcached是多线程的,使用master-worker的方式,主线程监听端口,建立连接,然后顺序分配给各个工作线程。每一个从线程都有一个event loop,它们服务不同的客户端
  • redis:epoll 也支持select和poll
    • redis是单线程的服务器(redis也是多线程的,只不过除了主线程以外,其他线程没有event loop,只是会进行一些后台存储工作)
    • redis的事件模型很简单,只有一个event loop,是简单的reactor实现

内存分配 

  • memcache:memcached是有自己得内存池的,即预先分配一大块内存,然后接下来分配内存就从内存池中分配,这样可以减少内存分配的次数,提高效率,所以内存申请和释放的管理就简单很多,直接malloc和free即可
  • redis: redis没有自己得内存池,而是直接使用时分配,即什么时候需要什么时候分配,内存管理的事交给内核,自己只负责取和释放

 

posted on 2018-09-26 16:54  xiaowater  阅读(91)  评论(0)    收藏  举报

导航