全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货  >  详情

memcached和redis的区别?

来源:千锋教育
发布人:xqq
2023-10-20

推荐

在线提问>>

一、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的区别的内容希望对大家有帮助。

相关文章

如何使用python any()判断多元素?

如何使用Pandas处理Excel?

python函数中的参数有哪些?

python中pygal模块如何使用?

Python的excel处理操作

开班信息 更多>>

课程名称
全部学科
咨询

HTML5大前端

Java分布式开发

Python数据分析

Linux运维+云计算

全栈软件测试

大数据+数据智能

智能物联网+嵌入式

网络安全

全链路UI/UE设计

Unity游戏开发

新媒体短视频直播电商

影视剪辑包装

游戏原画

    在线咨询 免费试学 教程领取