TextVerBosityCommand
WriteMessage
onAccept
WhalinV1Transcoder
0..1
CachedBuffer
decode
scheduleWriteMessage
Statistics
AbstractSession
WhalinTranscoder
AbstractMemcachedSessionLocator
NioController
BinaryIncrDecrCommand
MemcachedHandler
TextFlushAllCommand
ShiftOrByteBufferMatcher
TCPController
TextGetCommand
BinaryDeleteCommand
RegisterEvent
java.util.concurrent.Future
ByteBufferCodecFactory
NioSession
onRead
BinaryAuthStepCommand
ClosedMemcachedTcpSession
TextCommandFactory
ArrayMemcachedSessionLocator
MemcachedCodecFactory
BinaryTouchCommand
BinarySetMultiCommand
registerSession
ControllerLifeCycle
Configuration
1.init
AbstractNioSession
Session
dispatchEvent
Command
TextGetMultiCommand
ByteBufferMatcher
DefaultStatistics
TextLineCodecFactory
KerstrelSetCommand
BinaryVersionCommand
MemcachedOptimizer
StoreCommand
0..n
WriteMessageImpl
SENDING-WRITING
Controller
+ readBuffer:IoBuffer = defaultValue+ writeQueue:Queue+ sessionIdleTimeout:long+ sessionTimeout:long
+ operation1(params):returnType- operation2(params)- operation3()
send
StringTranscoder
BinaryVerbosityCommand
InnerControllerStateListener
LinkedTransferQueue
DispatcherFactory
SlectableChannel.register
BinaryAuthListMechanismsCommand
BinaryAppendPrependCommand
VerBosityCommand
KestrelCommandFactory
IoBuffer
TextTouchCommand
NioTCPSesssion
Reactor
TextStatsCommand
RoundRobinMemcachedSessionLocator
KerstrelDeleteCommand
TextStoreCommand
handler.onMessageSent
MemcachedSessionLocator
MemcachedConnector
CachedBufferAllocator
MemcachedSession
writeToChannel
TextGetOneCommand
ConnectFuture
new Command()
decodeAndDispatch
BinaryCommandFactory
2.bind
AbstractController
MemcachedTCPSession
+ commandAlreadySent:BlockingQueue+ currentCommand:AtomicReference+ optimizer:MemcachedOptimizer+ sessionTimeout:long
KatamaMemcachedSessionLocator
XMemcachedClient
3.doStart
TextIncrDecrCommand
onWrite
SocketChannelController
SelectorManager
LibmemcachedMemcachedSessionLocator
BinaryNoopCommand
SimpleBufferAllocator
CodecFactory
BinaryQuitCommand
RandomMemcachedSessionLocator
buildSession
NioTcpSession
Handler
KerstrelFlushAllCommand
1.客户端通过发送Get请求时,命令异步发送,通过CountDownLatch等待返回结果2.
xmemcached.Connector
BinaryStatsCommand
SocketOption
PHPMemcachedSessionLocator
KerstrelGetCommand
IoBufferAllocator
ControllerStateListener
PrimitiveTranscoder
onEvent(WRITEABLE)
readFromBuffer
SimpleStatistics
NioSessionConfig
ElectionMemcachedSessionLocator
Optimizer
ShiftAndByteBufferMatcher
CommandFactory
write
preprocessWriteMessage
BaseSerializingTranscoder
BinaryGetAndTouchCommand
selector loop
Transcoder
BinaryGetCommand
TextCacheDumpCommand
StandardSocketOption
TextCASCommand
FlowControlLinkedTransferQueue
TextDeleteCommand
onEvent(ENABLE_WRITE)
BinaryGetMultiCommand
BinaryStoreCommand
Dispatcher
SessionConfig
BinaryFlushAllCommand
AbstractIoBuffer
start
PoolDispatcher
MemcachedTcpSession
BinaryAuthStartCommand
LongTranscoder
SimpleBuffer
CacheData
TextVersionCommand
MemcachedClientStateListener
HandlerAdapter
BinaryCASCommand
BaseBinaryCommand
FutureImpl
IntegerTranscoder
NioTCPSession
TokyoTyrantTranscoder
MemcachedDecoder
SerializingTranscoder
TextQuitCommand
sendCommand()
run
processRegister
java.util.concurrent.TransferQueue