Clustered Redis Store
Overview
Basic Usage
require "session"
# Define session data
struct UserSession
include Session::SessionData
property user_id : Int64?
property username : String?
end
# Configure with clustering
Session.configure do |config|
config.secret = ENV["SESSION_SECRET"]
config.timeout = 1.hour
# Enable clustering
config.cluster.enabled = true
config.cluster.node_id = ENV["NODE_ID"]? || UUID.random.to_s
# Use clustered store
config.provider = Session::ClusteredRedisStore(UserSession).new(
client: Redis.new(host: "redis.example.com")
)
endFeatures
Local Caching
Cluster Invalidation
Message Types
Message Type
Trigger
Action on Other Nodes
API Reference
Constructor
Store Operations
Cache Operations
Cluster Operations
Health & Lifecycle
QueryableStore Methods
Configuration Examples
Production Setup
Development Setup
High-Traffic Setup
Comparison with Redis Store
Aspect
RedisStore
ClusteredRedisStore
Best Practices
1. Use Unique Node IDs
2. Size Cache Appropriately
3. Set TTL Based on Access Patterns
4. Monitor Cache Performance
5. Handle Graceful Shutdown
Last updated
Was this helpful?