Memcached之客户端

2018-07-23  本文已影响216人  落日无风

Memcached之服务器端简单介绍了Memcached的Server功能,了解Memcached的服务器端负责数据的存储和cache的失效管理。对Memcached来说,它的理念非常简单,一半逻辑在服务器,一半逻辑在客户端。那么作为它的客户端,对分布式来说需要实现几个功能:Memcached的协议实现,支持数据编码、解码,路由和sharding, 服务器状态的管理,以及失效的转移。

简介

在Memcached的Java客户端中,最常用的为SpyMemcached和XMemcached。笔者将这两种客户端做了个对比:

功能特点 Spymemcached Xmemcached
网络传输 Nio Nio
协议 binary, ASCII binary, ASCII, Kestrel
高可用 支持故障转移 支持fail和standby模式
连接池 N Y
其它 CAS操作,支持自动重连 支持动态增删节点,支持JMX

客户端功能实现

网络上存在很多Spymemcached等客户端的介绍,本文就不重复了。我们今天来讨论一下,如果我们自己用Java来实现一个客户端的话,我们来看看如何设计。

  1. get(String key)  单个的读取
  2. getBulk(List<String keys> keys) 批量的读取
架构图片

总结

Memcached客户端,主要看网络传输处理这部分。对比Spymemcached和Xmemcached来说,后者的基于Nio, reactor处理更加干净,代码清晰易读,不重复,感觉相对舒服。至于实际应用中如何选择,则根据具体的业务场景和架构具体分析了。

上一篇 下一篇

猜你喜欢

热点阅读