memcached服务端支持2种传输协议,还有一种XMemcached对于Kestrel的支持实现
text protocol
文本协议传输的时候,序列化会产生大量的冗余内容。例如255,会使用3个字节。但是调试方便,在服务端可以清晰的看到文本内容。
binary protocol
二进制协议传输的时候,序列化产生的内容较少。内容紧凑。比如255,则使用1个字节。但是调试的时候,在服务器上命令行看内容,不容易调试。
Kestrel protocol(非服务器官方)
1 发包服务持续将数据SET到队列KQ中
2 收包服务持续将数据从队列KE中GET出来
FIFO,适用于异步消息传输。
Kestrel基本参照Memcached协议,可恢复,确保服务重启后可以保存重启前的消息队列,不会丢消息。依靠XMemcahed,可以做Kestrel集群,分布式扩充Kestrel服务。
代码示例
package com.panguso.phl;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import net.rubyeye.xmemcached.command.BinaryCommandFactory;
import net.rubyeye.xmemcached.command.KestrelCommandFactory;
import net.rubyeye.xmemcached.command.TextCommandFactory;
import net.rubyeye.xmemcached.utils.AddrUtil;
/**
* @author piaohailin
* @date 2014-1-12
*/
public class ProtocolTest {
/**
* @param args
* @author piaohailin
* @date 2014-1-12
*/
public static void main(String[] args) {
MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses("10.10.160.155:11211"));
//二进制协议
builder.setCommandFactory(new BinaryCommandFactory());
//文本协议
builder.setCommandFactory(new TextCommandFactory());
//FIFO:非官方的
builder.setCommandFactory(new KestrelCommandFactory());
}
}
结论
笼统的说,追求性能的话,还是二进制协议更好。
分享到:
相关推荐
资源分类:Python库 所属语言:Python 资源全名:python-binary-memcached-0.24.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
内存缓存二进制 使用二进制协议的memcached客户端。
memcached, libevent, MemCachedClient
在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装 3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动...
memcached 64位 window memcached 64位 window memcached 64位 window
安装Memcached及Memcached配置
Memcached vs Redis,总结的十分清晰和详细。
python-memcached python-memcached
memcached安装软件 libevent-2.0.21-stable.tar.gz magent.tar.gz memcached-1.4.15.tar.gz
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
memcached可视化工具memadmin,memcached可视化工具memadmin
MemCached For Win32 服务器 -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -...
memcached协议中文版 memcached协议中文版 memcached协议中文版
memcached.exe及memcached.dll
使用memcached 方法 package com.war.common.util; import com.danga.MemCached.*; import java.util.Date; public class MemCached { protected static MemCachedClient mcc; protected static Logger log; ...
Memcached 统计与监控,用telnet去连接memcached,并统计和监控memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载,很好的提高了Web性能。Memcached需要有缓存服务端,采用java编程的话还需要memcached.jar,这就是java中实现memcached服务的...
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
安装Memcached及Memcached配置
memcached的基本设置: -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d ...