写点什么

文章:缓存系统 MemCached 的 Java 客户端优化历程

2008 年 9 月 27 日

Memcached 在大型网站被应用得越来越广泛,不同语言的客户端也都在官方网站上有提供,但是 Java 开发者的选择并不多。这也是为什么本文作者决定自己封装优化 Memcached 的 Java 客户端的原因,本文主要介绍了该客户端的封装优化历程。

文章开篇介绍了 MemCached 是什么。有很多开发人员将其看做是一种分布式缓存系统,但是作者并不这么认为,他介绍说:

其实 Memcached 服务端本身是单实例的,只是在客户端实现过程中可以根据存储的主键做分区存储,而这个区就是 Memcached 服务端的一个或者多个实例,如果将客户端也囊括到 Memcached 中,那么可以部分概念上说是集中式的。

然后从内存存储、集中式缓存、分布式扩展、Socket 通信、特殊的内存分配机制和客户端的重要性等方面对 Memcached 做了深入的介绍。随后作者从对 Memcached 官方推荐的 Java 客户端之一 Whalin 进行封装开始,介绍了整个整个优化过程。压力测试比较结果显示不论是在易用性和性能上,优化的客户端都有很大程度上的提高。

难得可贵的是,作者现在已经将该优化客户端的源代码、范例和说明等资料发布在 Google Code 上,有兴趣的朋友可以阅读查看。

详细内容,请阅读全文缓存系统 MemCached 的 Java 客户端优化历程

2008 年 9 月 27 日 22:06545

评论

发布
暂无评论
  • Redis Cluster 你弄明白了吗?

    上一篇文章我们聊到客户端分片(Redis Sharding)技术,这里我们接着聊一下Redis Cluster这种服务端分片的解决方案。我对服务端分片的理解是对1)具体数据片数如何实现;2)服务端的数据的存储、迁移;3)数据分片的高可用对客户端来说就是透明无感的。

    2020 年 11 月 1 日

  • 一次线上 JVM 调优实践,FullGC40 次 / 天到 10 天一次的优化过程

    通过这一个多月的努力,将FullGC从40次/天优化到近10天才触发一次,而且YoungGC的时间也减少了一半以上,这么大的优化,有必要记录一下中间的调优过程。

    2020 年 10 月 15 日

  • 服务端缓存选型:Redis、Memcached 的区别与技术选型

    2020 年 5 月 21 日

  • ASP.NET 2.2 Preview 1 首次支持 Java SignalR 客户端

    微软的Sourabh Shirhatti宣布ASP.NET Core 2.2的第一个预览版已经发布。有兴趣在本地机上尝鲜的开发人员可以从相关来源下载预览版。

  • Java 容器化部署:从应用服务器到云原生

    演讲嘉宾张建锋,永源中间件共同创始人,原红帽公司 JBoss 应用服务器核心开发组成员。毕业于北京邮电大学和清华大学,曾供职于金山软件,IONA 科技公司和红帽软件。内容介绍Java 容器化部署–从应用服务器到云原生当前已经进入云计算容器化时代,Java 作为主要的软件编程语言,存在着内存占用较大,启动时间久等问题。原有的 JavaEE 应用程序如何进行微服务改造,又如何适应云原生技术要求呢?容器技术发展到现在已经较为成熟,软件架构如何设计,才能更好的运行在容器中?我们通过技术分析和实例说明,来阐述 Java 应用如何更好的实现容器化部署。演讲大纲 应用服务器中 JavaEE 部署方式; Rest 服务接口和单页应用成为主流; 微服务改造后的软件架构; 容器化管理和服务编排; 应用服务器中 Java 应用组件和 Kubernetes 管理的软件组成,功能具有相似性; 利用 GraalVM 使 Java 应用本地化; Quarkus 项目开发云原生 Java 应用,其核心技术原理; 构建 Serverless 服务平台。

    2019 年 6 月 11 日

  • JVM 的早期优化与晚期优化

    最近重新翻开《深入理解Java虚拟机》,看到肥壕三年前留下的稚嫩的笔记,感叹道年轻真好。再次重新阅读 “早期优化与晚期优化”的章节,来自内心的拷问: 我的天!!!我是失忆了吗???三年前我看的是什么???我当时是脑子进水了???

    2020 年 8 月 30 日

  • 缓存分类(一):客户端缓存的分类和介绍

    2020 年 4 月 30 日

  • 三年 JAVA 开发经验,字节四面成功拿下 2-2Offer,入职就是 30K16 薪

    当你准备跳槽面试的时候,明明只是一份15K的工作,却问你会不会多线程,懂不懂高并发,火箭造得让你猝及不防,结果就是两个字——凉凉!而在如今的市场,什么多线程、高并发、分布式、负载均衡、集群、微服务等等等等,都可说是Java高级后端开发求职的必备技

    2021 年 1 月 5 日

  • Perfect:Swift 语言服务端开发工具包

    Perfect是一个使用Swift编程语言开发Web和其他REST服务的框架,其主要目标是简化需要后端服务器软件的移动应用的开发,使开发人员可以使用同一种语言进行客户端和服务端开发。

  • Facebook 宣布放弃 Java 支持

    日前,著名社交网站Facebook在其开发者网站上宣布不再为其官方Java客户端库提供支持,并称此举是为了改进整个Facebook平台的体验。社区对此反响不一。

  • 为什么 HTTPS 需要 7 次握手以及 9 倍时延?

    我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。

  • 缓存系统 MemCached 的 Java 客户端优化历程

    Memcached在大型网站被应用得越来越广泛,不同语言的客户端也都在官方网站上有提供,但是Java开发者的选择并不多。这也是为什么本文作者决定自己封装优化Memcached的Java客户端的原因,本文主要介绍了该客户端的封装优化历程。

  • Kotlin 与 Java 完全兼容,就可以随便调用了吗?

    2018 年 7 月 9 日

  • 文章:案例研究之 Lawson 并购产品线的架构集成

    Lawson与Intentia在2006年的合并,迫使开发人员不得不面对一大难题——如何实现现有众多采用了不同技术的业务系统的集成。本文是这一高难度集成项目的经验总结。

  • 钉钉企业级 IM 存储的挑战与实践

    作为ToB产品,钉钉具备独特的业务场景。首先是超级大群,在钉钉上,企业的组织关系可映射到 IM 的群。例如全员群就是包含企业所有员工的一个群。这带来为数众多的超级大群。在节假日时期,特别是元旦、春节或者双11这样的重大活动,老板和员工在群里高频互动,给 IM 存储系统带来巨大的压力。第二是聊天数据长期保存,历史消息可实时回溯。与 ToC 的消息所不同的是,钉钉的聊天数据属于企业资产,需要长期保留。随着钉钉体量迅速增长,面临着存储容量扩展瓶颈,存储成本高昂等问题。第三是稳定性要求高。一旦钉钉的消息发不出去或者收消息出现延迟,会大面积影响企业的核心业务运转。从历史经验来看,存储恰恰是非常容易出问题的依赖。面对上述挑战,我们将IM存储模型从写扩散升级为读写扩散混合,减少超级大群对存储的扩散量;与阿里自研的 X-Engine 存储引擎共创,实现了一个低成本,适应钉钉IM业务的冷热存储架构;同时通过存储冗余,应对高稳定性的要求。本次分享系统介绍我们的解决思路和关键细节,希望可以让你有所收获。讲师介绍劲弩,主要负责钉钉 IM 的存储架构优化、成本控制和消息发送稳定性保障。2016年加入钉钉,擅长高可用、低成本的企业级系统架构,对钉钉 IM 的技术演进深有体会。

    2020 年 1 月 3 日

  • 阿里 P8 大牛爆肝的《Java 核心技术总结》+《面试题总结》简直赞爆了

    是的,你没看错,在 Java 核心基础总结的基础上,作者又淦了一本 Java V2.0,它不是第一版的升级版本,而是第一版的补充,第二版适合有一定基础的同学阅读,当然第一版作者也遗漏了很多东西,这些东西作者后面肯定会予以完善和总结,来为你呈现出一个完整 的

    2020 年 10 月 6 日

  • Redis Cluster 宕机引发的事故

    本文转载自技术琐话公众号

  • 为什么 Redis 6 只支持 RESP3 ?

    我想解释为什么我要做出这个决定,以及如何减轻用户和客户端库作者的问题。

  • 在 Spring 中访问 Redis

    2019 年 2 月 27 日

发现更多内容

IDC发布2021年中国云计算10大预测;Docker 桌面为 M1 推出技术预览版

京东智联云开发者

云计算 AI 程序人生

源码解析Synchronized同步方法的八种使用场景,收藏

996小迁

Java 源码 架构 面试 synchronized

anyRTC加持AI,打造下一代实时音视频引擎

anyRTC开发者

人工智能 android 音视频 WebRTC RTC

23 种设计模式的有趣见解

xcbeyond

设计模式 七日更

Spring Cloud微服务实战

田维常

微服务

BitQy交易所软件系统开发|BitQy交易所APP开发

开發I852946OIIO

RPC 核心,万变不离其宗

yes的练级攻略

Java 微服务 后端 RPC

完全懵掉的电话面试

escray

面经 面试经历 101次面试 日更挑战 十日谈

天源迪科获2020年度中国产业供应链(中央企业集采供应链)百强企业荣誉

DT极客

组态软件特征分析!同样都是拖拉拽,为什么别人的页面这么好看?

一只数据鲸鱼

物联网 数据采集 监控管理平台 组态软件

还记得你的时间胶囊吗?

熊斌

个人成长 七日更

Java并发编程:AQS的互斥锁与共享锁

码农架构

Java Java并发

2020年,关于【区块链运营】工作的11条思考

猫Buboo

比特币 区块链+

源码输出纯净版SSM架构,收藏直接CV使用它不香吗?

小Q

Java 学习 编程 面试 ssm

必须清除互联网世界的毒瘤:网络谣言背后存在病态心理

石头IT视角

分布式文件系统(Hadoop HDFS)客户端写入机制

守护石论数据

hadoop hdfs 大数据技术 大数据架构 分布式文件系统

Kafka的控制器controller详解

数据社

kafka 七日更

【年终总结】mybatis常见注解

田维常

mybatis

SQL:我为什么慢你心里没数吗?

Java架构师迁哥

源码解析Synchronized同步方法的八种使用场景,收藏

小Q

Java 学习 架构 面试 多线程

5. 穿过拥挤的人潮,Spring已为你制作好高级赛道

YourBatman

Spring Framework 类型转换 Converter

IPFS质押挖矿系统开发方案

系统开发咨询:I76-883I-5I52 邓森

区块链多币种钱包app系统开发

系统开发咨询:I76-883I-5I52 邓森

区块链商城系统开发模式制作

系统开发咨询:I76-883I-5I52 邓森

堪称完美!阿里架构师亲自手撕”Spring Boot实战笔记“用60个案例给你整的明明白白

比伯

Java 编程 程序员 架构 技术宅

iOS 崩溃分析

ios 崩溃分析

带宽、延时、吞吐率、PPS 这些都是啥?

小林coding

Linux 操作系统 网络

基于App SDK和API搭建无人自习室等无人场景

IoT云工坊

物联网 智慧琴房 24小时无人自习室 24小时自助游戏厅 共享办公室

菜鸟实时数仓2.0进阶之路

Apache Flink

flink 流计算

秒杀系统设计的挑战和问题(转载)

jorden wang

被阿里、腾讯、华为追捧为最牛逼的 Java 框架你知道是什么吗?

Java架构师迁哥

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

文章:缓存系统MemCached的Java客户端优化历程-InfoQ