xmemcached发布1.0版本

简介:
xmemcached发布1.0稳定版,下载地址 这里。
    相比于1.0-beta版本,这个released版本的主要改进如下:
1、xmemcached跟yanf4j都是默认采用common-logging,你可以使用log4j,也可以默认使用jdk的日志库。1.0添加了log4j的配置和依赖包。log4j的性能比jdk自带的日志库性能好多了。

2、添加了BufferAllocator接口,用于分配ByteBufferWrapper,ByteBufferWrapper顾名思义就是ByteBuffer的包装接口,因此BufferAllocator就是ByteBuffer的分配器,有两个实现:SimpleBufferAllocator,直接调用ByteBuffer.allocate(capacity)方法,不做任何缓存;一个是CachedBufferAllocator,采用ThreadLocal缓存ByteBuffer,避免重复创建,如果你对mina熟悉的话,这个概念没什么特别的。默认xmemcached采用的是SimpleBufferAllocator,你可以通过XMemcachedClient的构造方法设置想要采用的BufferAllocator:

public  XMemcachedClient(BufferAllocator allocator)  throws  IOException;
// 其他重载构造函数


    经过测试,采用CachedBufferAllocator并没有带来显著的性能提升,需要更多测试,慎用。

3、允许设置网络参数,在多个memcached节点的情况下,强烈推荐将网络层的读线程数(处理OP_READ)设置为接近节点数(具体还是要看场景测试,因为读线程数本质上是启动了一个线程池来处理读事件,太大也会影响效率):
    // XMemcachedClient的getDefaultConfiguration静态方法,获取默认配置
     public   static  Configuration getDefaultConfiguration() {
        Configuration configuration 
=   new  Configuration();
        configuration.setTcpRecvBufferSize(TCP_RECV_BUFF_SIZE);
        configuration.setSessionReadBufferSize(READ_BUFF_SIZE);
        configuration.setTcpNoDelay(TCP_NO_DELAY);
        configuration.setReadThreadCount(READ_THREAD_COUNT);
        
return  configuration;
    }

    使用方法:
 Configuration conf = XMemcachedClient.getDefaultConfiguration();
  // 设置读线程数为节点数,更多设置方法请参见Configuration类                       
 conf.setReadThreadCount(5);

 XMemcachedClient mc  =   new  XMemcachedClient(
                    conf,
new  CachedBufferAllocator());
 mc.addServer(ip1, port1);
 mc.addServer(ip2, port2);
 mc.addServer(ip3,port3);
 mc.addServer(ip4,port4);
 mc.addServer(ip5,port5);



4、修复一系列发现的bug,如Command返回结果需要设置成原子引用、更严格的方法参数检查、提示信息的友好、日志的优化、操作超时的时候取消操作等,重构部分代码

文章转自庄周梦蝶  ,原文发布时间2009-03-13

目录
相关文章
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
1374 1
|
应用服务中间件 nginx
『Nginx』Nginx实现同端口代理多项目 及 同项目多端口配置
📣读完这篇文章里你能收获到 - Nginx实现同端口代理多项目 - Nginx实现同项目多端口配置
2165 0
『Nginx』Nginx实现同端口代理多项目 及 同项目多端口配置
|
9月前
|
人工智能 机器人 API
从“调个 API”到“自己养模型”:用 Python 快速构建聊天机器人的完整路径
从“调个 API”到“自己养模型”:用 Python 快速构建聊天机器人的完整路径
828 4
|
8月前
|
人工智能 语音技术 iOS开发
找到了多个 **Kokoro 量化版本** 可以下载
Kokoro语音合成模型提供多种量化版本:FP32(350MB)、FP16(169MB)、INT8/Q8(约100–103MB)、Q4及AMD NPU优化版,适配桌面、移动端、浏览器与嵌入式设备。支持GitHub、HuggingFace、npm多源下载,兼顾体积与性能。
|
10月前
|
缓存 安全 物联网
蓝牙1.0到蓝牙信标5.1发展历程:从基础连接到精准定位详解
蓝牙从1.0基础连接发展至5.1厘米级定位,历经经典蓝牙高速传输、BLE低功耗革新,再到AoA/AoD高精度定位突破,推动信标技术在零售、工业、智慧城市等场景广泛应用,持续引领短距离无线连接与定位演进。如果您想进一步了解蓝牙定位技术和案例,欢迎搜索维构lbs智能定位~
|
安全 数据库 数据安全/隐私保护
Sql-lab全解_sqllab,给后辈的一点建议
Sql-lab全解_sqllab,给后辈的一点建议
|
API 开发工具 Python
客流API实测:如何快速获取客流热力图+数据
本文介绍了一款可快速获取区域客流热力图的API,支持圆形或多边形地理围栏设置,灵活适配多种业务场景。该API调用简便,返回精细的热力数据和人群统计,支持11天内客流趋势分析,适合零售、政务等行业用于决策分析。目前提供免费体验,集成难度低,实用性强。
|
人工智能 机器人 测试技术
从支撑英伟达GR00T到登陆魔搭社区,智元AgiBot World打通具身智能全球数据生态
备受关注的 AgiBot World 百万真机数据集正式登陆国内顶级 AI开源社区——魔搭社区。该数据集由智元机器人开发,此前已在GitHub 和 Hugging Face 等国际平台开源并获得了业界的积极反响。此举是智元机器人布局国内AI生态的重要一步,国内开发者和研究者将能够更加顺畅地接入AgiBot World全套资源,降低数据获取和工具使用门槛,推动具身智能及机器人技术在国内的普及与发展。
601 0
|
SQL Java 关系型数据库
如何系统学习Java:从零基础到项目实战的完整指南
本指南为Java系统化学习路线,涵盖从基础语法到项目实战的全过程。分为四大阶段:Java基础、核心技术、数据库与框架、项目实战,结合学习资源与实践策略,助你高效掌握编程技能,迈向Java工程师之路。
938 0
|
监控 网络协议 算法
QUIC技术创新 让视频和图片分发再提速
在1月12日的「阿里云CDN产品发布会-新一代传输协议QUIC让CDN更快一步」之上,阿里云技术专家淮叶分享了QUIC技术及其应用落地实践,内容包含:QUIC协议介绍、相比TCP有哪些优势、应用场景以及技术落地实践中的协议库选择,QUIC协议软件实现、落地技术架构和性能优化。
3044 67
QUIC技术创新 让视频和图片分发再提速