Skip to content

make caching a separate interface#66

Merged
yisraelU merged 1 commit into
mainfrom
CacheImprovements
May 25, 2026
Merged

make caching a separate interface#66
yisraelU merged 1 commit into
mainfrom
CacheImprovements

Conversation

@yisraelU

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR separates client-side cache metrics from the main ValkeyCommands composite interface by introducing a dedicated CachedValkeyCommands interface and adding cached-specific constructors in the Valkey DSL.

Changes:

  • Removed CacheMetrics from the base ValkeyCommands trait.
  • Added CachedValkeyCommands (type-level marker for “caching enabled” + metrics).
  • Added cached factory methods (utf8Cached, fromConfigCached, fromClusterConfigCached, and *CachedUnsafe) plus cached command implementations (CachedValkeyStandalone / CachedValkeyCluster) and a CacheMetricsImpl mixin.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
modules/effects/src/main/scala/dev/profunktor/valkey4cats/ValkeyCommands.scala Drops cache metrics from the default composite commands interface.
modules/effects/src/main/scala/dev/profunktor/valkey4cats/Valkey.scala Adds cached-specific DSL constructors returning CachedValkeyCommands.
modules/effects/src/main/scala/dev/profunktor/valkey4cats/CachedValkeyCommands.scala Introduces the new caching-aware commands interface (ValkeyCommands + CacheMetrics).
modules/effects/src/main/scala/dev/profunktor/valkey4cats/BaseValkey.scala Extracts cache metrics implementation into a mixin and adds cached command implementations.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +3600 to 3605
private def liftAndMap[A, B](cf: java.util.concurrent.CompletableFuture[A])(f: A => B): F[B] =
asyncF.map(futureLift.lift(cf))(f)

override def cacheHitRate: F[Double] =
baseClient.getCacheHitRate().futureLift.map(_.doubleValue())
liftAndMap(baseClient.getCacheHitRate())(_.doubleValue())

@@ -21,4 +21,3 @@ trait ValkeyCommands[F[_], K, V]
with ScriptingCommands[F, K, V]
with ServerCommands[F, K, V]
with ConnectionCommands[F, K, V]
@yisraelU yisraelU merged commit d0e15cf into main May 25, 2026
3 checks passed
@yisraelU yisraelU deleted the CacheImprovements branch May 25, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants