MCPcopy Index your code
hub / github.com/dengliming/redis-modules-java

github.com/dengliming/redis-modules-java @2.0.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.0.4 ↗ · + Follow
1,173 symbols 3,717 edges 181 files 272 documented · 23%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

build java-version Maven Central license codecov

Java Client libraries for redis-modules, based on Redisson.

Support

TODO

Installing

Build from source

Execute ./mvnw clean install -DskipTests=true -Dgpg.skip. The build process requires JDK8+.

Maven repository

Include all


<dependency>
    <groupId>io.github.dengliming.redismodule</groupId>
    <artifactId>all</artifactId>
    <version>2.0.3</version>
</dependency>

Include single module like:


<dependency>
    <groupId>io.github.dengliming.redismodule</groupId>
    <artifactId>redistimeseries</artifactId>
    <version>2.0.3</version>
</dependency>

Usage example

RedisBloom

Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
RedisBloomClient redisBloomClient = new RedisBloomClient(config);

BloomFilter bloomFilter = redisBloomClient.getRBloomFilter("bf");
bloomFilter.create(0.1d, 100);
bloomFilter.madd(new String[] {"a", "b", "c"});

TopKFilter topKFilter = redisBloomClient.getTopKFilter("topk_add");
topKFilter.reserve(1, 2000, 7, 0.925d);
topKFilter.add("test");
List<Boolean> itemExits = topKFilter.query("test");
Map<String, Integer> itemIncrement = new HashMap<>();
itemIncrement.put("test", 3);
topKFilter.incrby(itemIncrement);
List<String> allItems = topKFilter.list();

CountMinSketch countMinSketch = redisBloomClient.getCountMinSketch("cms_add");
countMinSketch.create(10, 10);
CountMinSketchInfo countMinSketchInfo = countMinSketch.getInfo();

CuckooFilter cuckooFilter = redisBloomClient.getCuckooFilter("cf_insert");
List<Boolean> result = cuckooFilter.insert(-1L, false, "a");

redisBloomClient.shutdown();

RediSearch

Config config = new Config();
config.useSingleServer().setAddress("redis://" + DEFAULT_HOST + ":" + DEFAULT_PORT);
RediSearchClient rediSearchClient = new RediSearchClient(config);

RediSearch rediSearch = rediSearchClient.getRediSearch("testSearch");
rediSearch.createIndex(new Schema()
    .addField(new TextField("title"))
    .addField(new TextField("content"))
    .addField(new Field("age", FieldType.NUMERIC))
    .addField(new Field("location", FieldType.GEO)));

Map<String, Object> fields = new HashMap<>();
fields.put("title", "Hi");
fields.put("content", "OOOO");
rediSearch.addDocument(new Document(String.format("doc1"), 1.0d, fields), new DocumentOptions());

// Search with NumericFilter
SearchResult searchResult = rediSearch.search("number", new SearchOptions()
                .noStopwords()
                .language(RSLanguage.ENGLISH)
                .filter(new NumericFilter("age", 1, 4)));

// Search with GeoFilter
searchResult = rediSearch.search("number", new SearchOptions()
                .noStopwords()
                .language(RSLanguage.ENGLISH)
                .filter(new GeoFilter("location", 15, 37, 200, GeoFilter.Unit.KILOMETERS)));

RedisTimeSeries

Config config = new Config();
config.useSingleServer().setAddress("redis://192.168.50.16:6383");
RedisTimeSeriesClient redisTimeSeriesClient = new RedisTimeSeriesClient(config);

RedisTimeSeries redisTimeSeries = redisTimeSeriesClient.getRedisTimeSeries();
long timestamp = System.currentTimeMillis();
redisTimeSeries.add(new Sample("temperature:2:32", Sample.Value.of(timestamp, 26)), new TimeSeriesOptions()
                .retentionTime(6000L)
                .unCompressed()
                .labels(new Label("sensor_id", "2"), new Label("area_id", "32")));
redisTimeSeriesClient.shutdown();

RedisAI

Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
RedisAIClient redisAIClient = new RedisAIClient(config);

RedisAI redisAI = redisAIClient.getRedisAI();
redisAI.setTensor("tensor1", DataType.FLOAT, new int[]{2, 2}, null, new String[]{"1", "2", "3", "4"});
redisAIClient.shutdown();

RedisGears

Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
RedisGearsClient redisGearsClient = new RedisGearsClient(config);

RedisGears redisGears = redisGearsClient.getRedisGears();
redisGears.pyExecute("GB().run()", false);
redisGearsClient.shutdown();

RedisJSON

Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
RedisJSONClient redisJSONClient = new RedisJSONClient(config);

RedisJSON redisJSON = redisJSONClient.getRedisJSON();
String key = "foo";
Map<String, Object> m = new HashMap<>();
m.put("id", 1);
m.put("name", "lisi");
redisJSON.set(key, SetArgs.Builder.create(".", GsonUtils.toJson(m)));
Map<String, Object> actual = redisJSON.get(key, Map.class, new GetArgs().path(".").indent("\t").newLine("\n").space(" "));
redisJSONClient.shutdown();

SpringBoot Starter

see spring-boot-starter

License

Apache License 2.0

Extension points exported contracts — how you extend this code

RedisCommands (Interface)
@author dengliming
redistimeseries/src/main/java/io/github/dengliming/redismodule/redistimeseries/protocol/RedisCommands.java
RedisCommands (Interface)
@author dengliming
redisbloom/src/main/java/io/github/dengliming/redismodule/redisbloom/protocol/RedisCommands.java
RedisCommands (Interface)
@author dengliming
redisjson/src/main/java/io/github/dengliming/redismodule/redisjson/protocol/RedisCommands.java
RedisCommands (Interface)
@author dengliming
redisgraph/src/main/java/io/github/dengliming/redismodule/redisgraph/protocol/RedisCommands.java
RedisCommands (Interface)
@author dengliming
redisai/src/main/java/io/github/dengliming/redismodule/redisai/protocol/RedisCommands.java
RedisCommands (Interface)
@author dengliming
redisgears/src/main/java/io/github/dengliming/redismodule/redisgears/protocol/RedisCommands.java
RedisCommands (Interface)
@author dengliming
redisearch/src/main/java/io/github/dengliming/redismodule/redisearch/protocol/RedisCommands.java
RBatch (Interface)
(no doc) [2 implementers]
commons/src/main/java/io/github/dengliming/redismodule/common/api/RBatch.java

Core symbols most depended-on inside this repo

add
called by 313
redisbloom/src/main/java/io/github/dengliming/redismodule/redisbloom/TDigest.java
get
called by 310
redisjson/src/main/java/io/github/dengliming/redismodule/redisjson/RedisJSON.java
getName
called by 105
redisai/src/main/java/io/github/dengliming/redismodule/redisai/RedisAI.java
isTrue
called by 102
commons/src/main/java/io/github/dengliming/redismodule/common/util/RAssert.java
notNull
called by 80
commons/src/main/java/io/github/dengliming/redismodule/common/util/RAssert.java
notEmpty
called by 71
commons/src/main/java/io/github/dengliming/redismodule/common/util/RAssert.java
add
called by 66
redistimeseries/src/main/java/io/github/dengliming/redismodule/redistimeseries/RedisTimeSeries.java
get
called by 63
redistimeseries/src/main/java/io/github/dengliming/redismodule/redistimeseries/RedisTimeSeries.java

Shape

Method 985
Class 155
Enum 23
Interface 8
Function 2

Languages

Java100%
Python1%

Modules by API surface

redisearch/src/main/java/io/github/dengliming/redismodule/redisearch/RediSearch.java66 symbols
redisjson/src/main/java/io/github/dengliming/redismodule/redisjson/RedisJSON.java38 symbols
redisbloom/src/main/java/io/github/dengliming/redismodule/redisbloom/TDigest.java32 symbols
redistimeseries/src/main/java/io/github/dengliming/redismodule/redistimeseries/RedisTimeSeries.java31 symbols
redisai/src/main/java/io/github/dengliming/redismodule/redisai/RedisAI.java31 symbols
redisearch/src/main/java/io/github/dengliming/redismodule/redisearch/search/SearchOptions.java26 symbols
redisbloom/src/main/java/io/github/dengliming/redismodule/redisbloom/CuckooFilter.java25 symbols
spring-boot-starter/src/main/java/io/github/dengliming/redismodule/springboot/starter/env/RedisModuleProperties.java22 symbols
redisearch/src/main/java/io/github/dengliming/redismodule/redisearch/aggregate/Reducers.java22 symbols
redisgraph/src/main/java/io/github/dengliming/redismodule/redisgraph/model/Statistics.java21 symbols
redisgraph/src/main/java/io/github/dengliming/redismodule/redisgraph/RedisGraph.java21 symbols
redisgears/src/main/java/io/github/dengliming/redismodule/redisgears/RedisGears.java21 symbols

For agents

$ claude mcp add redis-modules-java \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact