FORGEBOX Enterprise 🚀 - Take your ColdFusion (CFML) Development to Modern Times! Learn More...

Ortus Redis Cache

v2.0.0+6428 Public

Ortus Redis Extension

The Ortus Redis Extension is a **native** Lucee Extension that allows your CFML server to connect to a Redis server or a Redis Cluster and leverage it for built-in caching, session storage, Pub/Sub Messaging, and document storage.

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster. Learn More

Requirements

  • Lucee 5.1.0 and above
  • Redis 4.0.X and above

Features In A Nutshell

  • Add Redis native functionality to any Lucee server
  • Install at server level (Available to all contexts)
  • Create Cache connections in the Lucee web administrator or via Application.cfc to connect to any network-accessable Redis cluster
  • Set and get objects from Redis via standard CFML functions and tags (cachePut(), cacheGet(), cfcache action="get|put")
  • Fully supports all built-in Lucee cache functions including wildcard filters
  • Seamlessly distribute storage of the following to any Redis Cluster
    • Lucee session storage
    • Lucee client storage
    • Lucee Ram resouces (ram://...)
  • Seamlessly cache the following to any timeout-sensitive Redis key
    • Results of database queries
    • Results of deterministic functions
    • Complex or simple objects in your application's code
    • Cached templates (cfcache action="content|cache|serverCache")
  • Extremely lightweight and fast
  • Ability to publish and subscribe to Redis channels for pub/sub capabilities: https://redis.io/topics/pubsub
  • Native Redis functions:
    • RedisGetCluster( cacheName )
    • RedisGetClusterNodes( cacheName )
    • RedisGetConnectionPool( cacheName )
    • RedisGetProvider( cacheName )
    • RedisPublish( channel, message, cacheName )
    • RedisSubscribe( subscriber, channels, cacheName )

Dependencies (0)


Dev Dependencies (0)


Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


[2.0.0] => 2021-DEC-

Fixed

  • LRE-35 cache filters for getting entries was not working
  • LRE-32 getting all values/entries was not passing a built key, so return struct was always null
  • LRE-23 LicenseHelper not validating all editions of similar product skus

Added

  • LRE-41 Ability to choose which database to connect to in Redis, apart from 0 being the default
  • LRE-40 Migration of docs to gitbook
  • LRE-39 New redisSubscribe() so you can subscribe with closures/lambdas or CFCs to listen to Redis messages
  • LRE-38 New redisPublish() UDF so you can publish messages into the Redis cluster
  • LRE-37 New UDF redisGetClusterNodes() to get a map of cluster node objects
  • LRE-36 Redis Cluster protocol support (RedisCluster, Sentinel, AWS, DigitalOcean)
  • LRE-33 Redis publish and subscribe features
  • LRE-31 New native cfml function: redisGetCluster() to get access to the native redis cluster manager
  • LRE-30 Improve all exception handling to show exception messages
  • LRE-29 Creation of a base class to share between cache implementations
  • LRE-28 Add docker redis cluster support
  • LRE-27 Update Jedis to 2.9.3
  • LRE-25 Allow for a new setting to allow for case-sensitive mode instead of case-insensitive mode (default)

[1.4.0] => 2019-NOV-5

  • New Features
    • Added a log4j bridge and custom appender so all log messages from the Redis library will not go out to the out logs in Lucee
  • Improvements
    • Added all members of the RedisConnection class to be public/static so they can be inspected and reused
    • Added a getConnectionKeys() in the RedisConnection class to see which caches are configured and how
    • Added RuntTimeExceptions and IOExceptions whenever a Redis connection cannot be made to improve errors
    • Added more context when exceptions happen to the error messages
    • Converted all connection pool access to try's with resources for auto-closing and better code visibility
    • Coverted all valueList() and entryLIst() to leverage parallel streams for performance
  • Bugs
    • Fixes an issue which caused the extension to fail on Lucee v5.2.9 and v5.3.x

[1.3.0] => 2019-SEP-30

  • Added ability to set the following new settings on a cache connection:
    • Timeout
    • use SSL
    • Password
    • Max Connections
    • Max Idle Connections

[1.2.0] => 2019-MAR-05

  • Init methods on the cache constructor are not static - https://ortussolutions.atlassian.net/browse/LRE-1
  • Auto publishing
  • S3 Publishing automated
  • Added more verbose logging
  • Added more logging for exception handling
  • Major fix for session expirations when using session clusters with Lucee
  • Removed tests source from final package to reduce binary size

[1.1.0] => 2018-JAN-16

  • Minor fixes on Logging
  •   Ortus Solutions
  • Published
  • 2.0.0+6428 is the latest of 11 release(s)
    Published
  • Published on {{ getFullDate("2022-08-05T16:38:50Z") }}

  • Install String
    $ install 5C558CC6-1E67-4776-96A60F9726D580F1
  • JVM Argument
    -Dlucee-extensions=5C558CC6-1E67-4776-96A60F9726D580F1
  • No collaborators yet.
       
    • {{ getFullDate("2018-03-09T18:01:46Z") }}
    • {{ getFullDate("2022-08-05T16:38:50Z") }}
    • 2,879
    • 24,709