solid-cache-coder

Solid Cache is Rails 8's default cache backend—a database-backed cache store using NVMe storage instead of RAM. It eliminates the need for Redis/Memcached while providing FIFO eviction.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "solid-cache-coder" with this command: npx skills add majesticlabs-dev/majestic-marketplace/majesticlabs-dev-majestic-marketplace-solid-cache-coder

Solid Cache Coder

Overview

Solid Cache is Rails 8's default cache backend—a database-backed cache store using NVMe storage instead of RAM. It eliminates the need for Redis/Memcached while providing FIFO eviction.

Configuration

Basic Setup

config/environments/production.rb

config.cache_store = :solid_cache_store

Advanced Configuration

config.cache_store = :solid_cache_store, { database: :cache, expires_in: 2.weeks, size_estimate: 500.megabytes, namespace: Rails.env, compressor: ZSTDCompressor }

Database Setup

Separate Cache Database (Recommended)

config/database.yml

production: primary: <<: *default url: <%= ENV["DATABASE_URL"] %> cache: <<: *default url: <%= ENV["CACHE_DATABASE_URL"] %> migrations_paths: db/cache_migrate

Run Migrations

bin/rails solid_cache:install:migrations bin/rails db:migrate

Cache Key Design

Hierarchical Keys

Rails.cache.fetch("user:#{user.id}:profile:#{profile.id}") { expensive_computation } Rails.cache.delete_matched("user:#{user.id}:*") # Pattern-based deletion

Russian Doll Caching

<% cache @post do %> <%= @post.body %> <% @post.comments.each do |comment| %> <% cache comment do %><%= render comment %><% end %> <% end %> <% end %>

Expiration Strategies

Per-entry expiration

Rails.cache.write("session:#{id}", data, expires_in: 30.minutes)

Fetch with expiration

Rails.cache.fetch("expensive_query", expires_in: 15.minutes) { ExpensiveQuery.run }

Performance Tuning

Enable ZSTD Compression

config.cache_store = :solid_cache_store, { compressor: ZSTDCompressor }

Batch Operations

keys = users.map { |u| "user:#{u.id}:preferences" } results = Rails.cache.read_multi(*keys)

Rails.cache.fetch_multi(*keys) { |key| compute_value_for(key) }

Database Maintenance

lib/tasks/cache_maintenance.rake

namespace :cache do task vacuum: :environment do ActiveRecord::Base.connected_to(database: :cache) do ActiveRecord::Base.connection.execute("VACUUM ANALYZE solid_cache_entries") end end end

Solid Cache vs Redis

Choose Solid Cache When Choose Redis When

Simplifying infrastructure Sub-millisecond latency critical

Using PostgreSQL/SQLite as primary Extremely large cache working set

Single-server or small clusters Need pub/sub or complex invalidation

Preferring NVMe over RAM caching Already running Redis

Anti-Patterns

Anti-Pattern Problem Solution

Single database at scale Resource contention Separate cache database

No compression Wasted storage Enable ZSTD

Infinite expiration Unbounded growth Set reasonable max_age

No maintenance Table bloat Schedule VACUUM

Output Format

When configuring Solid Cache, provide:

  • Database Setup - Multi-database configuration

  • Cache Config - Store options and expiration

  • Performance - Compression and pool settings

  • Maintenance - Cleanup tasks and schedules

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

google-ads-strategy

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

viral-content

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

market-research

No summary provided by upstream source.

Repository SourceNeeds Review