Memcached 1.4.0 Release

New Features
Binary Protocol

A new feature that brings new features. We now have goodness like CAS-everywhere (e.g. delete), silent, but verifiable mutation commands, and many other wonders.

Note that the original protocol is not deprecated. It will be supported indefinitely, although some new features may only be available in the binary protocol.
Client Availability

Many clients for the binary protocol are available.

C

    libmemcached supports just about anything you can do with a memcached protocol and is the foundation for many clients in many different languages (which you can find linked from the project page).

    Project page: http://tangent.org/552/libmemcached.html

Java

    spymemcached has very good text and binary protocol support over IPv4 and IPv6 with a quite comprehensive test suite.

    Project page: http://code.google.com/p/spymemcached/

Protocol Spec

    NIH problem? Go write your own client. :)

    http://cloud.github.com/downloads/memcached/memcached/protocol-binary.txt

Performance

Lots of effort has gone into increasing performance.

There is no longer a build-time distinction between a single-threaded and multi-threaded memcached. If you want a single-threaded memcached, ask for one thread (though there'll still be utility threads and other such things in the background). This change lets us focus on a future where multiple cores can be saturated for servicing requests.

Facebook-inspired contention reduction with per-thread stat collection and the Facebook connection dispatch and thread starvation prevention contributions helped our scalability.

Lock analysis also showed us that we had quite a bit of contention on hash table expansion which has been moved into its own thread, greatly improving the scalability on multicore hardware.

A variety of smaller things also shook out of performance testing and analysis.

There's also a memory optimization for users who don't actually make use of CAS. Running memcached with -C disables the use of CAS resulting in a savings of about eight bytes per item. If you have big caches, and don't use CAS, this can lead to a considerable savings.
Stats

There are several new stats and some new ways to look at older stats.
New Stats

stats settings

    Show all current server settings (useful for troubleshooting as well as internal verification).

Delete

    The global stats now contain statistics on deletion.

    delete_hits refers to the number of times a deletion command was issued which resulted in a modification of the cache while delete_misses refers to the number of times a deletion command was issued which had no effect due to a key mismatch.

Incr/Decr

    Incr and decr each have a pair of stats showing when a successful/unsuccessful incr occurred. incr_hits, incr_misses, decr_hits, and decr_misses show where such mutations worked and where they failed to find an existing object to mutate.

CAS

    CAS stats are tracked in three different ways:

    * cas_hits

    Number of attempts to CAS in a new value that worked.

    * cas_misses

    Number of attempts to CAS in a value where the key was not found.

    * cas_badval

    Number of attempts to CAS in a value where the CAS failed due to the object changing between the gets and the update.

slab class evicted time

    Per slab class, you can now see how recently accessed the most recent evicted data was. This is a useful gauge to determine eviction velocity on a slab so you can know whether evictions are healthy or if you've got a problem.

Connection yield counts

    The -R option allows you to limit how many requests are handled in a single trip through the network state machine. The conn_yields stat reports how many times this has occurred.

    This is most useful when you have very high rates of operations from a single client which seems to be hogging server resources unfairly, such as extremely large multi-get operations. We do not expect this to be a common situation, but this stat can help diagnose such issues if they should occur.

More Granular Stats

Where possible, stats are now tracked individually by slab class. The following stats are available on a per-slab-class basis (via "stats slabs"):

    * get_hits
    * cmd_set
    * delete_hits
    * incr_hits
    * decr_hits
    * cas_hits
    * cas_badval

(misses are obviously not available as they refer to a non-existent item)
Removed stats

"stats malloc" and "stats maps" have been removed.

If you depended on these commands for anything, please let us know so we may suggest alternatives for you.
Misc

    * More tests
    * More/better documentation
    * Code cleanup

Bug Fixes

    * Build fixes on ubuntu (gcc and icc) and FreeBSD
    * bad interaction with cas + incr ( bug 15 )
    * setuid failures are reported properly at daemonization time
    * decr overflow causing unnecessary truncation to 0 ( bug 21 )
    * failure to bind on Linux with no network (i.e. laptop dev)
    * some memcached-tool cleanup
    * Alignment bug in binary stats ( bug26 )
    * Occasional buffer overflow in stats ( bug27 )
    * Try to recycle memory more aggressively. ( bug14 )
    * incr validation ( bug31 )
    * 64-bit incr/decr delta fixes ( bug21 )
    * ascii UDP set ( bug36 )
    * stats slabs' used chunks ( bug29 )
    * stats reset should reset item stats, eviction counters, etc... ( bug22 )
    * Fix all stat buffer management
    * Fixes for -R handling ( bug61 )
    * GCC 4.4 fixes ( bug60 )

Development Info

We've added a bunch of tests and new code coverage reports.

All included code in this release has been tested against the following platforms (using the in-tree test suite):

    * ubuntu 8.10 (64-bit, both gcc and icc)
    * ubuntu 8.04 (32-bit)
    * ubuntu 9.10 (64-bit, gcc 4.4)
    * OS X 10.5 (ppc and intel)
    * OpenSolaris 5.11 x86 (with and without dtrace)
    * Solaris 10 sparc (with and without dtrace)
    * FreeBSD 7 x86

 

 

Download Link:

http://memcached.googlecode.com/files/memcached-1.4.0.tar.gz

手把手教你用Qt5打造二次元游戏启动器(附鸣潮同款UI源码) 本文详细介绍了如何使用Qt5框架从零开始构建一个功能完整、UI风格贴近《鸣潮》的二次元游戏启动器。教程涵盖无边框窗口、动态背景、自定义控件绘制、多线程资源加载以及下载管理等核心模块的实现,并提供了可运行的源码参考,帮助C++开发者和Qt爱好者深入掌握现代桌面应用开发技术。 阅读详情

相关推荐

千兆以太网 PCB 设计实战:4层板 100Ω 差分对布线,EMI 降低 6dB 实测

本文详细解析了千兆以太网 PCB 设计中的关键技术与实战经验,重点介绍了4层板上100Ω差分对的优化布线方法,通过实测数据展示了EMI降低6dB的有效方案。内容涵盖层叠设计、阻抗计算、布线技巧及EMI抑制措施,为硬件工程师提供了一套完整的高速电路设计解决方案。

weixin_29175469的博客 427

memcached四大注意事项(key长度,空格限制,最大item)

1.   key值最大长度? memcached的key的最大长度是250个字符。   注意250是memcached服务器端内部的限制(可以修改) 如果您使用的客户端支持"key的前缀"或类似特性,那么key(前缀+原始key)的最大长度是可以超过250个字符的。 我们推荐使用使用较短的key,因为可以节省内存和带宽。 key只要不重复就行,如果太大浪费内存。   2.key 不

mark's technic world 2763

用App Inventor做个蓝牙温湿度计,手机自动连Arduino,5分钟搞定硬件数据上屏

本文详细介绍了如何使用App Inventor和Arduino快速搭建一个蓝牙温湿度监测系统,实现手机自动连接并显示实时数据。通过图形化编程和硬件组装指南,零代码基础的用户也能在5分钟内完成硬件数据上屏,适用于智能家居、教学演示等多种场景。

weixin_30813225的博客 172

Memcached FAQ(2) 集群架构方面的问题

 最后更新时间 2009-04-10    更新人 dormando@rydia.net这里收集了经常被问到的关于memcached的问题集群架构方面的问题 memcached是怎么工作的? memcached最大的优势是什么? memcached和MySQL的query cache相比,有什么优缺点? memcached和服务器的local cache(比如PHP

德平的专栏 1万+

YOLOv11改进策略【Neck】| PRCV 2023,SBA(Selective Boundary Aggregation):特征融合模块,描绘物体轮廓重新校准物体位置,解决边界模糊问题

SBA 模块在医疗图像分割中具有重要作用,其设计出发点是解决图像中物体边界模糊以及融合特征时的冗余和不一致问题。

Limiiiing的博客 1943

西门子S7-1200PLC控制步进电机的组态编程和具体步骤

西门子S7-1200PLC控制步进电机的组态编程和具体步骤 硬件准备: 1) 一个S7-1214C DC/DC/DC,订货号:6ES7 214-1AG40-0XB0 2) 一个86系的步进电机+相应的驱动器 3) 一个20A的西门子24V电源(步进驱动器及plc电源) 4) Portal V15版本 组态及编程: 1) 创建一个验证项目,添加cpu( S7-1214C),双击“工艺对象”,选择“运动控制”的TO_PositioningAxis V6.0版本,如下图所示: 2) “确定”后,系统自动生成名

Robot_PLC_HMI_Automation 1万+

memcached-tool使用详解

memcached-tool脚本可以方便地获得slab的使用情况 (它将memcached的返回值整理成容易阅读的格式),可以从下面的地址获得脚本:  http://www.netingcn.com/demo/memcached-tool.zip 使用方法也极其简单: perl memcached-tool server_ip:prot option 例子: perl memcached

骑猪喝咖啡 3286

【即插即用模块】Transformer篇 | AAAI 2026 | Circulant Attention:全新ViT自注意力范式,复杂度从O(N²) 降至O(NlogN)!

本文提出了一种基于频域优化的循环注意力模块(Circulant Attention),通过离散傅里叶变换(DFT)将传统自注意力中的矩阵乘法转化为频域元素乘法,显著降低了计算复杂度。该模块采用复数线性层适配频域特征,并引入门控调制机制增强表达能力,在保持全局依赖捕捉能力的同时,将复杂度从O(N²)降至O(NlogN)。实验表明,该模块在多种视觉任务中均能提升模型性能,且计算效率更高。适用于需要高效全局注意力的视觉Transformer架构,可作为传统自注意力的替代方案。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 153

Linux下安装memcached及相关包

查看下系统是否安排libevent依赖 [root@localhost server]# rpm -qa|grep libevent [root@localhost server]# rpm -qa libevent //查看安装版本 安装过程: 安装包见附件,或从官网下载 libevent: [root@localhost server]# wget https://github...

learnworm的专栏 245

Jetson AGX Orin平台Jetpack5升级Jetpack6,自研载板USB不工作问题调试

1. 问题描述将AGX Orin工业的新板放到定制的载板上当在ubuntu 22和Jetpack 6.1上使用SDKManager刷机时,lsusb为空,并且在引导时没有发现/注册xusb设备。USB C端口正常打开并供电,但似乎没有数据传输。在Ubuntu 18 Jetpack 5.1.4 SDKManager上同样刷机之后,usb C集线器在引导时被正确地发现,显示在lsusb中,并识别/挂载外部驱动器。

jzwjzw19900922的博客 1510

华为OD机试真题 Java&Go 实现【优雅子数组】【100%通过率】【2022.11 Q4 新题】

如果一个数组中出现次数最多的元素出现大于等于K次,被称为K -优雅数组,k也可以被称为优雅阈值。例如,数组1,2,3,1、2,3,1,它是一个3-优雅数组,因为元素1出现次数大于等于3次,数组1,2,3,1,2就不是一个3-优雅数组,因为其中出现次数最多的元素是1和2,只出现了2次。给定一个数组A和k,请求出A有多少子数组是k-优雅子数组。

MISAYAONE的博客 1万+

实现memcached-1.6.9的SASL认证

实现memcached-1.6.9的SASL认证 关键词: memcached 1.6 sasl tomcat6 memcached-sasl-1.6.9.tar.gz包括如下两个软件包: libevent2.0.22 memcached 1.6.9 注意:安装memcached-1.6.x版本,需要设置环境变量SASL_CONF_PATH,否则在启动时报"Error initializing sasl"错误. 详情参见如下步骤2.5 启动memcache 1. 前置任务 1.1 实现软件YUM源(以r

mosaicwang的博客 2286

微调实操一: 增量预训练(Pretraining)

《微调入门篇:大模型微调的理论学习》我们对大模型微调理论有了基本了解,这篇结合我们现实中常见的场景,进行大模型微调实操部分的了解和学习,之前我有写过类似的文章《实践篇:大模型微调增量预训练实践(二)》利用的MedicalGPT的源码在colab进行操作, 由于MedicalGPT代码比较难以理解,而且模型只能从hugging face上下载,对于一些国内服务器无法访问,我重构了代码,让训练代码更有可读性,并参考LLAMAFactory的项目,增加了modelscope上下载模型,轻松在国内服务器运行.

youbingchen的博客 6993

java memcached release[1] - SockIOPool[转]

d release[1] - SockIOPool 1. SockIOPool – SockIO池化管理,为上层提供的接口是实例化函数[主要是指定memcached服务器地址,各个机器的权重];根据key&hashCode获取SockIO-网络连接句柄;根据服务器地址获取SockIO;关闭池。上层在获取到SockIO后可以进行读写操作,在正常使用完SockIO后将其归还给池,如果在使用过程中出现问题则将这个网络连接关闭,同时还暴露了SocketChannel提供了进行NIO编程的接口。

breezylee2009的专栏 152

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

memcached安装

1,安装依懒包 yum install -y epel-release yum install -y libevent-devel 2,安装memcached yum install -y memcached 3,安装libmemcached(memcached工具) yum install -y libmemcached 4,memcached启动参数配置文件 ...

256

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

springboot中使用memcached

Spring Boot:使用Memcached缓存 综合概述 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。Memcached基于内存的key-value存储,用来存储小块的任意数据,这些数据可以是数据库调用、API调用或者是页面渲染的结果。通过Memcached缓存数据库查询结果,可以有效地减少数据库访问次数,进而提高动态Web应用的速度。虽然Memcached的守护进程是用C写的,但是客户端可以用任何语言来编写,并通过Memcached协议与守护进程进行通信。 因为Spring B

zj20165149的博客 770

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

centos 6.5 php memcached,CentOS release 6.5下安装php-memcached

CentOS release 6.5下安装php-memcached1、下载libevent-1.4.13-stable.tar.gz#tar -xzvflibevent-1.4.13-stable.tar.gz#cdlibmemcached-1.4.13#./configure --prefix=/usr/local/libevent --with-memcached#make&&a...

weixin_30016191的博客 114

memcached java 客户端优化,memcached客户端的使用

一、 概念Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。二、 适用场合1、 分布式应用。由于memcached本身基于分布式的系统,所以尤其适合大型的分布式系统。2、 数据库前段缓存。数据库常常是网站系统的瓶颈。数据库的大并发量访问,常常造成网站内存溢出。当然我们也可以使用Hibernate...

weixin_39996096的博客 270

memcached 使用 java_java中Memcached的使用(包括与Spring整合)

一、什么是Memcached?Memcached是danga.com开发的分布式内存对象缓存系统,所谓分布式,意味着它不是本地的,而是基于网络连接完成服务。Memcached把一些数据通过key=value数据存储到内存中,这样访问更加方便快捷。但是随之而来的问题是如果Memcached关闭或者Memcached的服务器关闭那么所保存的内容也就没有了。二、安装Memcached服务端我是在Win下...

weixin_30324561的博客 232

初见memcached

一、 概念 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。 二、 适用场合 1. 分布式应用。由于memcached本身基于分布式的系统,所以尤其适合大型的分布式系统。 2. 数据库前段缓存。数据库常常是网站系统的瓶颈。数据库的大并发量访问,常常造成网站内存溢出。当然我们也可以使用H

ytlizhen1的专栏 522

最新SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题

源码下载地址 一 开发环境 1、动态web工程 2、部分依赖 java代码: Java代码 hibernate-release-4.1.0.Final.zip hibernate-validator-4.2.0.Final.jar spring-framework-3.1.1.RELEASE-with-docs.zip proxool-0.9.1.jar log4j 1.2.16 slf...

aitimiao1021的博客 201

SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结

下载地址: http://pan.baidu.com/s/1qWDinyk 一 开发环境 1、动态web工程 2、部分依赖 hibernate-release-4.1.0.Final.zip hibernate-validator-4.2.0.Final.jar spring-framework-3.1.1.RELEASE-with-d...

dengkuituo0680的博客 186

ubuntu安装memcached

1、安装libevent 从libevent官网找到合适版本的下载链接,官网地址如下http://libevent.org/,因为提供的地址有时候是会变的,如果变了就无法下载,需要到官网找新的链接。本文使用的是libevent-2.0.22-stable.tar.gz这个版本,可以使用如下命令下载: wget https://github.com/libevent/libevent/relea

三言两语 1645
上一篇: 业内人士估算北京每日近300人因看牙感染乙肝
下一篇: iBATIS 3 for Java Released (BETA 1)
webwindy
博客等级 码龄20年 3粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值