memcached和redis的区别是:1、类型;2、数据结构;3、执行速度;4、复制;5、密钥长度;6、线程。其中,Redis是一个开源的内存数据结构存储系统,用作数据库,缓存和消息代理。
一、memcached和redis的区别
1、类型
Redis是一个开源的内存数据结构存储系统,用作数据库,缓存和消息代理。
Memcached是一个免费的开源高性能分布式内存对象缓存系统,它通过减少数据库负载来加速动态Web应用程序。
2、数据结构
Redis支持字符串,散列,列表,集合,有序集,位图,超级日志和空间索引;而Memcached支持字符串和整数。Redis虽然是基于内存的存储系统,但是它本身是支持内存数据的持久化的,而且提供两种主要的持久化策略:RDB快照和AOF日志。而memcached是不支持数据持久化操作的。
3、执行速度
Memcached的读写速度高于Redis。
4、复制
Memcached不支持复制。而,Redis支持主从复制,允许从属Redis服务器成为主服务器的精确副本;来自任何Redis服务器的数据都可以复制到任意数量的从属服务器。
5、密钥长度
Redis的密钥长度最大为2GB,而Memcached的密钥长度最大为250字节。
6、线程
Redis是单线程的;而,Memcached是多线程的。
延伸阅读:
二、Memcached内存管理机制
Memcached默认使用Slab Allocation机制管理内存,其主要思想是按照预先规定的大小,将分配的内存分割成特定长度的块以存储相应长度的key-value数据记录,以完全解决内存碎片问题。Slab Allocation机制只为存储外部数据而设计,也就是说所有的key-value数据都存储在Slab Allocation系统里,而Memcached的其它内存请求则通过普通的malloc/free来申请,因为这些请求的数量和频率决定了它们不会对整个系统的性能造成影响Slab Allocation的原理相当简单。 如图所示,它首先从操作系统申请一大块内存,并将其分割成各种尺寸的块Chunk,并把尺寸相同的块分成组Slab Class。其中,Chunk就是用来存储key-value数据的最小单位。每个Slab Class的大小,可以在Memcached启动的时候通过制定Growth Factor来控制。假定图中Growth Factor的取值为1.25,如果名列前茅组Chunk的大小为88个字节,第二组Chunk的大小就为112个字节,依此类推。
以上就是关于memcached和redis的区别的内容希望对大家有帮助。