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

【Mac+CLion+STM32+JLink】从零到一:在macOS上构建高效STM32开发与调试工作流 本文详细介绍了在macOS上使用CLion、STM32CubeMX和JLink搭建高效STM32开发与调试工作流的完整指南。从环境准备、CLion深度配置到STM32CubeMX工程实战,再到JLink烧录避坑和串口调试技巧,帮助开发者快速掌握Mac平台下的嵌入式开发全流程。 阅读详情

相关推荐

SQL 通过sum() over(order by ,rownum)实现财务现金日记账实例

SELECT 类型,to_char(发生日期,'yyyy-MM-dd') 发生日期,期初余额,借方金额,贷方金额, (CASE WHEN 借方金额>0 THEN '借' WHEN 贷方金额>0 THEN '贷' ELSE '平' END) 方向, sum(收支金额) over(order by 发生日期, rownum) 余额 FROM( SELECT LX 类型,账户,账号,摘要,发生日期,单据ID, ...

qq_41451794的博客 1023

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

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

mark's technic world 2763

车载测试面试题总结

首先确认是什么问题,如果是测试软件的问题就先确定自己的测试方法有没有问题,如果没有问题,那就是测试软件的问题,这时候就需要提bug 进行跟踪,(比如BCM测试的时候,先明确测试的输入,对输入)进行需求分析,然后设计测试用例,进行用例评审,评审完执行测试用例形成最终的版本,台架分为:hil(黑尔)台架,单个控制器的台架、整车台架、车身台架、动力系统台架等,主要验证其功能,或者实车无法满足的测试环境。这个人不可能一直,点击几千次或者多少次几个小时连续点击,人不可能一直在点。因为要模拟一下这个稳定性,

woaxiaoqing的博客 7818

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

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

德平的专栏 1万+

【Jlink & C#】通过C#实现Jlink RTT上位机的功能

某天看到安富莱家的自己开发的调试器可以实现输出中文调试信息到自己编写的Jlink RTT上位机上,觉得无比神奇,略好奇到底是如何做的,找了很久,发现其上位机的对应的实现好像也没有完全开源出来。后来经过很多搜索确认,知道了几个事实:那么有没有可能用C#来控制Jlink呢?答案是,有!!! 解决思路在于,C#调用JLinkARM.dll里面的函数 这里转载下我认为很有意义的发现结合以上的几个发现,加上我自己的测试,我把我对接JLinkARM.dll的C#接口分享出来,不保证都能用,我只是测试了几个常用的功能,R

一只爱做笔记的码农 9152

linux驱动由浅入深系列:基于高通平台分析触摸屏(TP)、虚拟按键驱动

触摸屏的触摸板(touch panel简称TP)驱动的基本架构和普通按键驱动基本一致,可以参考文章:linux驱动由浅入深系列:输入子系统之二(编写一个gpio_key驱动)。只是其功能稍稍复杂些,配置也多些,下面一起来看一下。 TP包括 触摸屏、虚拟按键、虚拟按键背光灯 TP驱动芯片厂商主要有:Goodix(汇顶),FocalTech(敦泰科技),cypress(赛普拉斯),synapt

Radia的专栏 4768

memcached-tool使用详解

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

骑猪喝咖啡 3286

046篇:数据统计:分组、求和、平均值、最大最小值

本文介绍了在RPA中实现数据分组统计的方法。通过字典+循环组合,可以完成按单字段或多字段的分组聚合操作,包括求和、计数、求平均值及最大/最小值等。文章详细讲解了分组统计的原理,并提供了单级分组、多级分组的具体实现步骤,最后通过销售数据按月分组的实战案例,演示了如何从原始数据到生成汇总报表的完整流程。这些方法可以灵活应用于各类数据统计分析场景。

weixin_59649563的博客 214

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

FANUC机器人S523 新款PN板卡与西门子PLC通信配置介绍

FANUC机器人S523 新款PN板卡与西门子PLC通信配置介绍

Robot_PLC_HMI_Automation 354

C# 从数秒到毫秒:MySQL+Redis百万数据优化实战全解析

在处理百万级数据时,传统单体数据库常面临查询效率低下、数据库负载过高和用户体验差等问题。为解决这些性能瓶颈,可以采用MySQL分库分表、Redis缓存和异步统计的组合策略。 数据库分片:通过水平分表和分库实现,将单表数据分散到多个物理表或数据库实例中,降低单点负载。 Redis缓存:利用Redis缓存高频数据,减少数据库查询压力,提升响应速度。 异步统计:通过消息队列(如RabbitMQ)解耦统计任务,后台处理非实时任务,避免阻塞主流程。 这些优化策略能够显著提升系统性能,确保在高并发和大数据量场景下的稳定

墨夶的博客 852

实现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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java memcached release[1] - SockIOPool[转]

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

breezylee2009的专栏 152

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

VC中sqlite的使用

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

springboot中使用memcached

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

zj20165149的博客 770

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、付费专栏及课程。

余额充值