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会因为一些原因停止工作工具可以监控进程,当进程将死、意外退出,他会即时重新启动memcached进程,从而减少应用中断时间,减少系统性能抖动,减少故障恢复时间。
分享到:
相关推荐
**Memcached 使用详解** Memcached 是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高网站性能。它通过在内存中存储数据,为应用程序提供快速的数据访问,避免了频繁读取...
4. **Socket 通信**:Memcached 使用 TCP 或 UDP 通信协议,客户端可以选择使用同步或异步的网络 I/O 模型。数据传输前需要序列化,为了降低开销,建议存储较小的数据,如字符串。 5. **特殊的内存分配机制**:...
**Memcached缓存系统详解与应用实践** ...无论是快速响应高并发请求,还是优化数据库性能,Memcached都能提供有力的支持。在实践中,结合具体业务场景,合理运用缓存策略,能显著提升系统的整体性能。
Memcached是一款高效、轻量级的分布式内存缓存系统,由Danga Interactive公司的开发团队为LiveJournal设计并实现。它的主要目标是减轻数据库的负载,通过缓存...理解其原理和正确使用方法,对于优化Web应用至关重要。
**三、使用Memcached优化应用** 1. **减少数据库查询**:将经常访问但更新不频繁的数据存储到Memcached中,避免每次请求都去数据库查找,显著提升性能。 2. **缓存预热**:在应用启动时,可以预先加载常用数据到...
Java 使用 Memcached 演示 Memcached 是一个高性能、分布式的内存对象缓存系统,广泛应用于减轻数据库负载,提高Web应用的响应速度。在Java中,我们可以借助各种客户端库来与Memcached进行交互。本篇文章将深入探讨...
总的来说,Memcached 是一个强大而高效的缓存工具,对于需要优化数据库性能和实现分布式数据共享的系统,它是理想的选择。不过,在选择是否使用 Memcached 时,应根据实际应用的需求和架构来决定,避免不必要的系统...
**标题:“danga memcached使用”** memcached是一款高性能、分布式内存对象缓存系统,它广泛应用于...理解其工作原理,掌握安装、配置和使用方法,以及通过源码学习,能帮助开发者更好地利用这一工具优化应用性能。
本文将深入探讨 Memcached 的使用及其状态分析。 首先,Memcached 以其内存存储机制著称,这使得它在读取速度上远超于传统的硬盘存储,比如使用哈希散列存储数据到硬盘。在内存价格日益降低的今天,使用内存作为...
### Java使用Memcached简单教程 #### 一、简介 Memcached是一个高性能的分布式内存对象缓存系统,通过减轻数据库负载来加速动态Web应用,提高网站的浏览速度。它通过在内存中缓存数据和对象来减少读取数据库的次数...
**Memcached** 是一款高性能、分布式内存对象缓存系统,常用于减轻数据库的负载,提高Web应用的响应...同时,了解如何在大型分布式系统中优化Memcached的配置和使用,以充分发挥其性能优势,是提高整体系统效率的关键。
**标题与描述解析** 标题"memcached 64位 window"指的是在Windows操作系统上运行的64位版本的Memcached缓存系统。Memcached是一种分布式内存对象...正确配置和使用Memcached,能显著改善用户体验,降低服务器压力。
至于标签“源码”和“工具”,意味着我们可以从源代码级别理解Memcached的内部工作原理,也可以将Memcached作为开发中的辅助工具,优化应用性能。虽然这里没有提供源代码,但您可以自行前往Memcached的官方仓库获取...
**标题解析:** “memcached安装及java应用使用...总结,本文应该涵盖了从安装memcached到在Java应用中使用它的全面指南,包括相关配置、操作、最佳实践和优化技巧,旨在帮助开发者充分利用memcached来提升应用性能。
`commons-pool-1.5.6.jar` 是 Apache Commons Pool 库,它是对象池设计模式的实现,Spymemcached 使用它来管理连接池,以优化资源利用率。 `slf4j-api-1.6.1.jar` 和 `slf4j-simple-1.6.1.jar` 是 Simple Logging ...
本书详细介绍了如何利用Memcached这一高性能、分布式内存对象缓存系统来优化网站性能,解决大规模网络应用中的数据存储与访问瓶颈问题。以下是对该书部分关键知识点的深入解读。 ### 一、Memcached概述 #### 1.1 ...
当内存容量达到上限时,Memcached会使用LRU(Least Recently Used)算法自动清除最近最少使用的缓存项。 4. **分布式特性**:虽然名为“分布式”缓存,但Memcached服务器本身并不具备分布式功能。实现分布式缓存...
Memcached是一款高性能、分布式内存对象缓存系统,常用于减轻数据库负载,提高Web应用的性能。它通过在内存中存储数据来快速...通过合理地利用memcached,开发者可以优化Web应用性能,减少数据库压力,提高用户体验。