`

memcached详解

 
阅读更多

最近因为项目需要仔细看了memcached的相关资料,这里整理下,备忘。

1、memcached开始支持多线程,

 

2、使用自己的内存分配策略,而不是系统的malloc方法。目的减少内存碎片。

 

系统的malloc分配等尺寸的内存片,必将导致内存浪费,从而出现碎片。(题外话,这个分配方案可以作为操作系统的磁盘空间分配方案,现在windows系统使用等尺寸的最小单元存储,经常性产生碎片,磁盘利用率低)。

 

将内存切割为大小相等的slab,每个slab中划分大小不等的trunk,当客户端请求save数据时,系统会从这些trunk中找一个尺寸与其最接近的trunk保存。

 

3、memcached存储的一个Item的最尺寸有上限,超过这个上限不是不能存储,而是将导致性能打折扣严重。读取一个数据需要搜索两个trunk。

 

4、存储ByteCode还是序列化对象?

 

在java体系同,可以将基本类型的信息用bytecode形式保存在cache中,也可以用java的对象形式保存在cache中。int i=4 需要4个字节,而其对象需要64个字节,节约16倍内存。为什么有这样的差别呢?因为cache保存对象时,首先要调用Java系统的序列话过程,它将整 个对象信息用bytecode表示,显然其占用空间比只有表达值的bytecode多很多。

 

实现上面逻辑的方法就是实现对象的外部序列化,只需要用bytecode表示值。不使用系统自己的序列化方法(序列化对象)。

 

有一个minix项目使用该技术优化前占用memcached内存为1.152G,优化后,空间只需要144M,可见这样的优化效果非常的理想,节约了宝贵的资源(虽然内存已经很便宜,但是在高并发系统中,内存还是非常珍贵的)。

 

5、memcached的进程监控

 

我们经常会发现有些时候memcached会因为一些原因停止工作deamonTools工具可以监控进程,当进程将死、意外退出,他会即时重新启动memcached进程,从而减少应用中断时间,减少系统性能抖动,减少故障恢复时间。

分享到:
评论

相关推荐

    Memcached 原理和使用详解

    Memcached是一款高效、轻量级的分布式内存缓存系统,由Danga Interactive公司的开发团队为LiveJournal设计并实现。它的主要目标是减轻数据库的负载,通过缓存数据和对象来提高动态Web应用的性能。Memcached的工作...

    Memcached应用详解.ppt

    缓存技术 Memcached 应用详解 ppt

    缓存服务器memcached下载

    **缓存服务器Memcached详解** Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库负载,提高页面加载速度,从而显著提升网站的整体性能。Memcached的设计理念是简单而高效,...

    memcached-1.5.9

    **memcached详解** 1. **工作原理**:Memcached基于键值对存储,将数据存储在内存中,通过TCP或UDP协议提供服务。当客户端请求数据时,如果缓存中有该数据,就直接返回,避免了数据库查询的耗时过程。 2. **分布式...

    memcached_jb51.rar

    **分布式缓存与Memcached详解** 分布式缓存是一种在分布式系统中存储数据的策略,它通过将数据分散在多台机器上,提高了系统的可扩展性和性能。在高并发的Web应用中,分布式缓存能够有效地减轻数据库的压力,提高...

    memcached-1.4.24.tar.gz 下载

    **memcached详解** Memcached是一款轻量级的、广泛应用于Web应用的分布式内存缓存系统。它的主要功能是减轻数据库负载,通过将数据存储在内存中,以快速响应客户端的请求,提高应用程序的性能。Memcached支持多种...

    安装memcached 文档.docx

    《Linux环境下安装与配置Memcached详解》 Memcached是一款高性能的分布式内存对象缓存系统,广泛应用于Web应用中,以减少数据库负载,提高数据读取速度。本文将详细介绍如何在Linux(以CentOS 5.x为例)环境下安装...

    memcached1

    **memcached详解** Memcached是一个高性能、分布式的内存对象缓存系统,广泛应用于Web应用中以减轻数据库负载。它的工作原理是将数据和对象存储在内存中,以便快速访问,从而提高系统性能。Memcached最初设计用于...

    计算机后端-PHP视频教程. MemcachedMemcached(day2).pdf

    【PHP与Memcached详解】 PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域中扮演着重要角色。在处理高并发、大数据量的场景时,为了提高效率和响应速度,通常会采用缓存技术,Memcached就是其中的一种常用缓存...

    spring集成memcached

    ### Spring集成Memcached详解 #### 一、Memcached简介与客户端选择 Memcached是一种高性能、分布式内存对象缓存系统,用于减轻数据库负载、加速动态Web应用,并提高网站速度。Spring框架可以通过集成Memcached来...

    memcached 的使用,以及jar包,和工具

    **memcached详解** memcached是一种高性能的、分布式的内存对象缓存系统,它可以在内存中临时存储数据,以减少数据库的读取次数,从而显著提升应用的响应速度。memcached适用于处理大量数据的高并发场景,如社交...

    php扩展memecache+memcached.exe

    **PHP扩展Memcache与Memcached详解** PHP扩展Memcache和Memcached是两种广泛使用的缓存技术,它们在处理大量数据时能显著提升Web应用程序的性能。这里我们将详细讲解这两个扩展的功能、安装步骤以及如何在PHP中使用...

    memcached-1.2.6-win32

    **memcached详解** 1. **基本概念**:Memcached是由Danga Interactive创建的,现在由社区维护。它是一个基于内存的键值存储系统,用于临时存储(缓存)中间结果或数据,以提高Web应用程序的速度。 2. **工作原理**...

    memcached-1.2.6-win32-bin.zip

    **memcached详解** memcached是一款开源的、高性能的分布式内存对象缓存系统,主要用于减轻数据库的负载,通过在内存中存储数据来加速动态Web应用的运行。它的工作原理是将数据存储在内存中,而不是硬盘上,因此...

    Java环境下Memcached应用详解.docx

    【Java环境下Memcached应用详解】 Memcached是一款高性能的分布式内存对象缓存系统,常用于缓解数据库的压力,提高网站性能。在Java环境下,Memcached能够作为集群环境下的缓存解决方案,适用于处理大量数据并需要...

    64位memcached

    **64位memcached详解** Memcached是一款高性能、分布式内存对象缓存系统,它能够将数据存储在内存中,以减少数据库的访问压力,提高应用的响应速度。64位的memcached是专为64位操作系统设计的版本,能够充分利用64...

Global site tag (gtag.js) - Google Analytics