Redis与Memcached的区别
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> memcached和redis的区别 区别: 1、数据类型不同,memcached只支持key-value,redis支持String,List,Map,set,sorted Set 2、memcached保存在内存中,redis内存和文件里面都有保存,宕机之后memcached完全丢失,redis还可以从文件中恢复到内存中 3、memcahed的内存分配是基于slab划分的,通过page(默认1M)申请内存,然后每个slab会划分为好多的chunk,数据都存储在chunk中,redis为了屏蔽不同平台之间的差异,redis对内存分配函数进行了一层封装,程序中统一使用zmalloc,zfree一系列函数 4、memcahed基于libevent网络库,而redis是基于epoll网络模型,紧接着说下, select,poll,epoll的区别 select同步阻塞,最大文件描述符1024, poll同步阻塞,没有最大文件描述符限制, epoll异步非阻塞,没有最大文件描述符限制。 select是轮询式的事件通知, epoll是回调事件通知callback 5、memcahed多线程的,redis是单线程的,redis使用epoll,这就是redis为什么使用单线程性能一点也不逊于memcahed的原因 6