imperugo / imperugo/StackExchange.Redis.Extensions

Add Redis JSON module support

Open
#643 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C#
Stars
628
Forks
177
PR merge metrics
No merged PRs in 30d

Description

Summary

Add support for the Redis JSON module (RedisJSON) for native server-side JSON operations with JSONPath queries.

Why

Redis JSON allows storing, querying, and manipulating JSON documents directly on the server without full deserialization — critical for large documents where you only need a few fields.

Key Operations

  • `JSON.SET` / `JSON.GET` — store/retrieve JSON
  • `JSON.MGET` — multi-key JSON get
  • `JSON.NUMINCRBY` — atomic numeric increment within JSON
  • `JSON.ARRAPPEND` — append to JSON array
  • `JSON.DEL` — delete JSON path
  • `JSON.TYPE` — get type at path

Considerations

  • Requires Redis Stack (not vanilla Redis)
  • SE.Redis may not have native typed API — may need `ExecuteAsync` with raw commands
  • Consider a separate NuGet package: `StackExchange.Redis.Extensions.Json`
  • JSONPath query support is the differentiating feature

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by reviewing the existing extension API and how it uses StackExchange.Redis, then assess ExecuteAsync with raw commands and the separate StackExchange.Redis.Extensions.Json package option. Done means supporting the listed RedisJSON operations and JSONPath queries, with the Redis Stack requirement accounted for.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, redis
Domain
databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.