Skip to content

Martini Data Integration Redis Functions

Martini provides robust support for Redis v5.0+, an open-source, in-memory data structure store used as a database, cache, and message broker. This section details how to configure Redis connections within Martini, enabling developers to seamlessly incorporate Redis's capabilities into their applications.

Overview

Redis is favored for its high performance, flexibility, and broad applicability in various architectural scenarios. Through Martini, developers can efficiently connect to and interact with Redis instances, enhancing data handling and messaging within applications.

Compatibility Note

Martini is compatible with Redis versions older than v5.0. However, for the best experience and access to the latest features, it is recommended to use Redis v5.0 or newer. Be aware that some functionalities might not work as expected with older versions.

Configuring Redis Connections

Establishing a Redis connection in Martini is straightforward. The key requirement is the provision of the URI in the General Configuration section. Martini accommodates several URI formats, offering flexibility to meet diverse connection needs.

URI Configuration

  • Standard URI Format: Martini supports standard Redis URI formats, facilitating easy and direct connections to Redis instances.
  • Custom URI Support: For specific needs or advanced configurations, custom URIs can be provided, ensuring compatibility with various Redis setups.

Advanced Configuration Options

Martini allows for detailed customization of Redis connections through several advanced configuration sections:

  • Advanced Settings: Tailor your Redis connection with advanced settings to enhance performance and operational efficiency.
  • SSL Configuration: Secure your Redis communications with SSL, providing encryption for data in transit.
  • Socket Options: Optimize connectivity and performance through configurable socket settings.
  • Connection Management: Adjust connection pool settings to manage and optimize load and performance effectively.

Utilizing Redis with Martini

Incorporating Redis into Martini applications not only improves data operation speeds but also provides powerful caching and message brokering functionalities. By properly configuring Redis connections, developers can achieve enhanced data availability, application scalability, and overall performance.

Configuring Redis Connections in Martini

Martini supports extensive customization for Redis connections through various configuration properties. These properties enable developers to tailor connections for optimal performance, security, and specific operational requirements.

General Configuration Properties

Configure the basic settings necessary for establishing a connection to a Redis server.

Property Default Description
Name The name of the database connection. Useful for identification purposes.
URI redis://<host>:6379/<database> Connection string specifying the host, port, and database index.
Password Password for server authentication, if required.
Auto Start true Automatically initiate connection on Martini instance startup.

Advanced Configuration Properties

Adjust advanced settings to fine-tune connection behavior and manage how Martini interacts with Redis.

Property Default Description
Ping Before Activate Connection false Issues a PING command to check connection viability before activation.
Auto Reconnect true Enables automatic reconnection attempts on connection loss.
Cancel Commands On Reconnect Failure false Cancels queued commands if reconnection attempts fail.
Publish On Scheduler false Utilizes a dedicated scheduler for emitting reactive data signals.
Suspend Reconnect On Protocol Failure false Suspends automatic reconnection on protocol errors, requiring manual intervention.
Request Queue Size 2147483647 Configures the maximum size of the request queue for a connection.
Disconnected Behavior Default Determines behavior for command execution when the connection is disconnected.

SSL Configuration Properties

Secure Redis connections using SSL with these configuration options.

Property Default Description
SSL Provider JDK Choose between OpenSSL or JDK for SSL connections.
KeyStore File Path to the KeyStore file for client certificates.
KeyStore Password Password for the KeyStore file.
TrustStore File Path to the TrustStore file for trusted certificates.
TrustStore Password Password for the TrustStore file.
Start TLS false Initiates TLS for secure connections.

Socket Configuration Properties

Control the underlying TCP/IP socket behavior for Redis connections.

Property Default Description
Connect Timeout (ms) 10000 Timeout for establishing a connection, in milliseconds.
Keep Alive false Enables TCP keepalive messages to maintain the connection.
TCP No Delay false Disables Nagle's algorithm for reduced latency at the cost of potential increased bandwidth.

Connection Configuration Properties for Redis in Martini

Optimizing the connection pool and behavior of Redis connections is crucial for ensuring the efficiency and reliability of your Martini applications. The following connection configuration properties allow for detailed customization of how Martini manages Redis connections.

Connection Configuration Properties

Fine-tune your Redis connection pool and management settings using these properties:

Property Default Description
Connection Timeout (ms) -1 Sets the connection timeout in milliseconds. A value of -1 indicates no timeout.
Auto Flush Commands true Determines whether commands are automatically flushed.
Maximum Total 8 The maximum number of connections maintained in the pool. Negative values mean no limit.
Maximum Idle 8 The maximum number of idle connections in the pool. If Minimum Idle is higher, Maximum Idle is used instead.
Minimum Idle 0 The minimum number of idle connections in the pool.
Eviction Policy Name Specifies the eviction policy when the database size limit is reached.
Time Between Eviction Runs (ms) -1 Time in milliseconds before evicting connections. A value of -1 disables eviction by default.
Evictable Idle Time (ms) 1800000 Minimum time an object may sit idle before being eligible for eviction, in milliseconds.
Soft Evictable Idle Time (ms) -1 Minimum time an object may sit idle before it's eligible for eviction, ensuring a minimum number of idle objects remain.
Tests Per Eviction Run 3 The number of objects examined per eviction run. Negative values mean all connections are tested.
Evictor Shutdown Timeout (ms) 10000 Timeout for evictor shutdown upon pool closure, in milliseconds.
JMX Enabled false Toggles JMX monitoring for the connection pools.
JMX Name Base Base name for JMX enabled pools.
JMX Name Prefix Prefix for names assigned to JMX enabled pools.
Maximum Wait (ms) 0 Time to wait for an available connection.
Block When Exhausted true When false, an error occurs if a connection request is made when no connections are available.
LIFO true Determines if the pool returns idle objects in last-in-first-out order.
Fairness false Ensures threads receive available instances in the order they were requested.
Test On Create false Tests connections upon creation.
Test On Borrow false Tests connections upon borrowing from the pool.
Test On Return false Tests connections upon returning to the pool.
Test While Idle false Tests connections while idle.

These configuration properties provide extensive control over the behavior of Redis connections within Martini, enabling developers to optimize their applications for performance, reliability, and security. By adjusting these settings, you can ensure that your Redis connections are managed efficiently, according to your application's specific needs.