public class OHCacher extends Cacher
MemoryCacher,
RedisCacher| Modifier and Type | Class and Description |
|---|---|
protected static class |
OHCacher.ArraySerializer |
| Modifier and Type | Field and Description |
|---|---|
protected org.caffinitas.ohc.OHCache<byte[],byte[]> |
cache |
protected long |
capacity
Maximum capacity of whole cache in MEGABYTES
|
protected int |
compressAbove
Compress key and/or value above this size (BYTES), 0 = disable
compression
|
protected int |
compressionLevel
Compression level (best speed = 1, best compression = 9)
|
protected static java.lang.String |
CONTENT |
protected MetricCounter |
counterClean |
protected MetricCounter |
counterDel |
protected MetricCounter |
counterFound |
protected MetricCounter |
counterGet |
protected MetricCounter |
counterSet |
protected MetricGauge |
gaugeExpired |
protected int |
hashTableSize
Hash table size (must be a power of 2), defaults to 8192
|
protected int |
segmentCount
Number of segments (must be a power of 2), defaults to number-of-cores *
2
|
protected Serializer |
serializer |
protected java.util.concurrent.ScheduledFuture<?> |
timer
Cancelable timer
|
protected int |
ttl
Expire time, in seconds (0 = never expires)
|
broker, logger, nameMOLECULER_CACHER_CLEAN_TIME, MOLECULER_CACHER_CLEAN_TIME_DESC, MOLECULER_CACHER_CLEAN_TOTAL, MOLECULER_CACHER_CLEAN_TOTAL_DESC, MOLECULER_CACHER_DEL_TIME, MOLECULER_CACHER_DEL_TIME_DESC, MOLECULER_CACHER_DEL_TOTAL, MOLECULER_CACHER_DEL_TOTAL_DESC, MOLECULER_CACHER_EXPIRED_TOTAL, MOLECULER_CACHER_EXPIRED_TOTAL_DESC, MOLECULER_CACHER_FOUND_TOTAL, MOLECULER_CACHER_FOUND_TOTAL_DESC, MOLECULER_CACHER_GET_TIME, MOLECULER_CACHER_GET_TIME_DESC, MOLECULER_CACHER_GET_TOTAL, MOLECULER_CACHER_GET_TOTAL_DESC, MOLECULER_CACHER_SET_TIME, MOLECULER_CACHER_SET_TIME_DESC, MOLECULER_CACHER_SET_TOTAL, MOLECULER_CACHER_SET_TOTAL_DESC, MOLECULER_CIRCUIT_BREAKER_HALF_OPENED_ACTIVE, MOLECULER_CIRCUIT_BREAKER_HALF_OPENED_ACTIVE_DESC, MOLECULER_CIRCUIT_BREAKER_OPENED_ACTIVE, MOLECULER_CIRCUIT_BREAKER_OPENED_ACTIVE_DESC, MOLECULER_CIRCUIT_BREAKER_OPENED_TOTAL, MOLECULER_CIRCUIT_BREAKER_OPENED_TOTAL_DESC, MOLECULER_EVENT_BROADCAST_TOTAL, MOLECULER_EVENT_BROADCAST_TOTAL_DESC, MOLECULER_EVENT_BROADCASTLOCAL_TOTAL, MOLECULER_EVENT_BROADCASTLOCAL_TOTAL_DESC, MOLECULER_EVENT_EMIT_TOTAL, MOLECULER_EVENT_EMIT_TOTAL_DESC, MOLECULER_EVENT_RECEIVED_ACTIVE, MOLECULER_EVENT_RECEIVED_ACTIVE_DESC, MOLECULER_EVENT_RECEIVED_ERROR_TOTAL, MOLECULER_EVENT_RECEIVED_ERROR_TOTAL_DESC, MOLECULER_EVENT_RECEIVED_TIME, MOLECULER_EVENT_RECEIVED_TIME_DESC, MOLECULER_EVENT_RECEIVED_TOTAL, MOLECULER_EVENT_RECEIVED_TOTAL_DESC, MOLECULER_EXECUTOR, MOLECULER_REQUEST_ACTIVE, MOLECULER_REQUEST_ACTIVE_DESC, MOLECULER_REQUEST_ERROR_TOTAL, MOLECULER_REQUEST_ERROR_TOTAL_DESC, MOLECULER_REQUEST_LEVELS, MOLECULER_REQUEST_LEVELS_DESC, MOLECULER_REQUEST_RETRY_ATTEMPTS_TOTAL, MOLECULER_REQUEST_RETRY_ATTEMPTS_TOTAL_DESC, MOLECULER_REQUEST_TIME, MOLECULER_REQUEST_TIME_DESC, MOLECULER_REQUEST_TIMEOUT_TOTAL, MOLECULER_REQUEST_TIMEOUT_TOTAL_DESC, MOLECULER_REQUEST_TOTAL, MOLECULER_REQUEST_TOTAL_DESC, MOLECULER_SCHEDULER, MOLECULER_TRANSIT_CONNECTED, MOLECULER_TRANSIT_CONNECTED_DESC, MOLECULER_TRANSIT_ORPHAN_RESPONSE_TOTAL, MOLECULER_TRANSIT_ORPHAN_RESPONSE_TOTAL_DESC, MOLECULER_TRANSIT_REQUESTS_ACTIVE, MOLECULER_TRANSIT_REQUESTS_ACTIVE_DESC, MOLECULER_TRANSIT_STREAMS_RECEIVE_ACTIVE, MOLECULER_TRANSIT_STREAMS_RECEIVE_ACTIVE_DESC, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_BYTES, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_BYTES_DESC, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_TOTAL, MOLECULER_TRANSPORTER_PACKETS_RECEIVED_TOTAL_DESC, MOLECULER_TRANSPORTER_PACKETS_SENT_BYTES, MOLECULER_TRANSPORTER_PACKETS_SENT_BYTES_DESC, MOLECULER_TRANSPORTER_PACKETS_SENT_TOTAL, MOLECULER_TRANSPORTER_PACKETS_SENT_TOTAL_DESC| Constructor and Description |
|---|
OHCacher()
Creates Off-heap Cacher with the default settings.
|
OHCacher(long maxCapacity,
int defaultTtl)
Creates Off-heap Cacher.
|
OHCacher(long maxCapacity,
int defaultTtl,
int segmentCount,
int hashTableSize,
int compressAbove)
Creates Off-heap Cacher.
|
| Modifier and Type | Method and Description |
|---|---|
protected java.lang.String |
bytesToKey(byte[] bytes) |
protected io.datatree.Tree |
bytesToValue(byte[] bytes) |
io.datatree.Promise |
clean(java.lang.String match)
Cleans this cache.
|
io.datatree.Promise |
del(java.lang.String key)
Deletes a content from this cache.
|
io.datatree.Promise |
get(java.lang.String key)
Gets a cached content by a key.
|
io.datatree.Promise |
getCacheKeys()
Lists all keys of cached entries.
|
long |
getCapacity() |
int |
getCompressAbove() |
int |
getCompressionLevel() |
int |
getHashTableSize() |
int |
getSegmentCount() |
Serializer |
getSerializer() |
int |
getTtl() |
protected byte[] |
keyToBytes(java.lang.String key) |
io.datatree.Promise |
set(java.lang.String key,
io.datatree.Tree value,
int ttl)
Sets a content by key into the cache.
|
void |
setCapacity(long capacity) |
void |
setCompressAbove(int compressAbove) |
void |
setCompressionLevel(int compressionLevel) |
void |
setHashTableSize(int hashTableSize) |
void |
setSegmentCount(int segmentCount) |
void |
setSerializer(Serializer serializer) |
void |
setTtl(int ttl) |
void |
started(ServiceBroker broker)
Initializes cacher instance.
|
void |
stopped() |
protected byte[] |
valueToBytes(io.datatree.Tree tree) |
appendToKey, appendTree, getCacheKey, install, isCachingDisabledByTheContext, serializeKeygetBroker, getLogger, getNameprotected static final java.lang.String CONTENT
protected long capacity
protected int segmentCount
protected int hashTableSize
protected int ttl
protected int compressAbove
protected int compressionLevel
protected Serializer serializer
protected org.caffinitas.ohc.OHCache<byte[],byte[]> cache
protected volatile java.util.concurrent.ScheduledFuture<?> timer
protected MetricGauge gaugeExpired
protected MetricCounter counterGet
protected MetricCounter counterSet
protected MetricCounter counterDel
protected MetricCounter counterClean
protected MetricCounter counterFound
public OHCacher()
public OHCacher(long maxCapacity,
int defaultTtl)
maxCapacity - capacity for data over the whole cache in MEGABYTESdefaultTtl - expire time of entries in memory, in seconds (default: 0 =
never expires)public OHCacher(long maxCapacity,
int defaultTtl,
int segmentCount,
int hashTableSize,
int compressAbove)
maxCapacity - capacity for data over the whole cache in MEGABYTESsegmentCount - mumber of segments (must be a power of 2), defaults to
number-of-cores * 2hashTableSize - hash table size (must be a power of 2), defaults to 8192defaultTtl - expire time of entries in memory, in seconds (default: 0 =
never expires)compressAbove - compress key and/or value above this size (in BYTES)public void started(ServiceBroker broker) throws java.lang.Exception
started in interface MoleculerLifecyclestarted in class Cacherbroker - parent ServiceBrokerjava.lang.Exceptionpublic void stopped()
stopped in interface MoleculerLifecyclestopped in class MoleculerComponentpublic io.datatree.Promise get(java.lang.String key)
Cacherpublic io.datatree.Promise set(java.lang.String key,
io.datatree.Tree value,
int ttl)
Cacherpublic io.datatree.Promise del(java.lang.String key)
Cacherpublic io.datatree.Promise clean(java.lang.String match)
Cacherpublic io.datatree.Promise getCacheKeys()
getCacheKeys in class Cacherprotected byte[] keyToBytes(java.lang.String key)
throws java.lang.Exception
java.lang.Exceptionprotected java.lang.String bytesToKey(byte[] bytes)
throws java.lang.Exception
java.lang.Exceptionprotected byte[] valueToBytes(io.datatree.Tree tree)
throws java.lang.Exception
java.lang.Exceptionprotected io.datatree.Tree bytesToValue(byte[] bytes)
throws java.lang.Exception
java.lang.Exceptionpublic long getCapacity()
public void setCapacity(long capacity)
public int getSegmentCount()
public void setSegmentCount(int segmentCount)
public int getHashTableSize()
public void setHashTableSize(int hashTableSize)
public int getTtl()
public void setTtl(int ttl)
public int getCompressAbove()
public void setCompressAbove(int compressAbove)
public Serializer getSerializer()
public void setSerializer(Serializer serializer)
public int getCompressionLevel()
public void setCompressionLevel(int compressionLevel)