Overview
What is CacheBox?
Features at a Glance
Cache Aggregator
Ability to aggregate different caching engines
Ability to aggregate different configurations of the same caches
Rich aggregation event model
Granular logging
Fast and Simple to use
Fast ColdFusion and Java hybrid cache
Simple API and configuration parameters
Small Footprint
There is no need to create it, configure it, or manage it if used within a ColdBox Application.
Solid Core
Multi-Threaded
Based on Java Concurrency Classes
Multiple Eviction Policies: LRU, LFU and FIFO
Memory Management & Memory Sensitive Caching based on Java Soft References
High Load Tested
Fully Documented
Extensible & Flexible
Cache Listeners for event broadcasting
Create custom eviction policies
Create cache providers
Create your own CacheBox object storage
Extensive and granular purging mechanisms (regular expressions and key snippets)
Highly Configurable
JVM Threshold Checks
Object Limits
Ability to time expire objects
Eternal (singletons) and time-lived objects
Object purging based on object usage (Access Timeouts)
Fully configurable at runtime via dynamic configurations and hot-updates
Visually Appealing and Useful
Fully featured caching monitor and commands panel
Complete cache performance reports
Cache Aggregator
CacheBox is a cache aggregator in which you can aggregate different caching engines or types of the same engine into one umbrella. It gives you built-in logging (via LogBox), an event model, synchronization, shutdown/startup procedures, reporting, interaction consoles, and a cache-agnostic API.
![](https://cachebox.ortusbooks.com/~gitbook/image?url=https%3A%2F%2F1666851906-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fw0xLWagNejhYiMyofb0V%252Fuploads%252Fe6o34RmF9QFPN5HZQtOU%252Fimage.png%3Falt%3Dmedia%26token%3Dba93d31f-9e57-46a7-bd83-0fcc7d9cdd9d&width=768&dpr=4&quality=100&sign=c2dd9094&sv=1)
CacheBox allows you to manage and create custom, what we call Cache Providers, that talk to different caching engines that you would like to configure in your applications. By aggregating them within CacheBox, you benefit from a rich event model for all caches to share, report, and debug.
Caching API
These cache providers also share the same interaction API and thus give you an excellent level of abstraction, higher extensibility, and flexibility when planning your applications or trying to scale them out.
![](https://cachebox.ortusbooks.com/~gitbook/image?url=https%3A%2F%2F1666851906-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fw0xLWagNejhYiMyofb0V%252Fuploads%252FnzKeH6hbDmZAhpoSaDyh%252Fimage.png%3Falt%3Dmedia%26token%3Df42cb5b5-f0ed-40f7-a94a-20304410a14a&width=768&dpr=4&quality=100&sign=e0d9cdad&sv=1)
You can build your applications based on this abstract API and then be able to configure the caches for your applications at runtime. This gives you greater flexibility and scalability when planning and writing your applications, as they can be targeted for ANY CFML engine or version.
Enterprise Caching Engine
Caching has been a central concern in the ColdBox Platform since its first version. We have always been concerned with mission-critical applications, scalability, and the ability to provide granular caching aspects to ColdFusion (CFML) applications within a single in-process caching engine with different storage capabilities that could be in-process or distributed.
![](https://cachebox.ortusbooks.com/~gitbook/image?url=https%3A%2F%2F1666851906-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fw0xLWagNejhYiMyofb0V%252Fuploads%252F4cog9gSlpttJoTbVQyCp%252Fimage.png%3Falt%3Dmedia%26token%3D63e54414-54af-403b-ad53-bcc399aff001&width=768&dpr=4&quality=100&sign=fd575291&sv=1)
Foremost, CacheBox behaves as an in-memory cache designed for objects, data, HTML fragments, or anything else you like. It has various tuning parameters such as default object timeout, default last access timeout, maximum objects in the cache, a JVM memory threshold, a reaping frequency, eviction policies, an event model, and so much more.
We also use object stores for the CacheBox caching engine. This means that CacheBox can be configured to store its cached objects in different locations other than memory. This gives us great flexibility because we offer a wide gamut of storage options, plus the concept of actually building your storage.
Cache Debugger & Reporter
We have an excellent cache debugger where you can visualize all your configured caches from within your application. You can see the performance of the cache the contents, and even issue commands to the targeted cache provider.
Useful Resources
Last updated