# redis-modules-java
**Repository Path**: yangmanlfx/redis-modules-java
## Basic Information
- **Project Name**: redis-modules-java
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-03-18
- **Last Updated**: 2022-03-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
  [](https://maven-badges.herokuapp.com/maven-central/io.github.dengliming.redismodule/redis-modules-java) [](/LICENSE) [](https://codecov.io/gh/dengliming/redis-modules-java)
Java Client libraries for [redis-modules](https://redis.io/modules), based on [Redisson](https://github.com/redisson/redisson).
## Support
* [RedisBloom](redisbloom)
* [RediSearch](redisearch)
* [RedisTimeSeries](redistimeseries)
* [RedisAI](redisai)
* [RedisGears](redisgears)
* [RedisJSON](redisjson)
## TODO
* [RedisGraph](https://oss.redislabs.com/redisgraph/)
* [RediSQL](https://redisql.com/)
* [...](https://redis.io/modules)
## Installing
#### Build from source
Execute `./mvnw clean install -DskipTests=true -Dgpg.skip`. The build process requires `JDK8+`.
#### Maven repository
Include all
```xml
io.github.dengliming.redismodule
all
1.0.5
```
Include single module like:
```xml
io.github.dengliming.redismodule
redistimeseries
1.0.5
```
## Usage example
RedisBloom
```java
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 itemExits = topKFilter.query("test");
Map itemIncrement = new HashMap<>();
itemIncrement.put("test", 3);
topKFilter.incrby(itemIncrement);
List allItems = topKFilter.list();
CountMinSketch countMinSketch = redisBloomClient.getCountMinSketch("cms_add");
countMinSketch.create(10, 10);
CountMinSketchInfo countMinSketchInfo = countMinSketch.getInfo();
CuckooFilter cuckooFilter = redisBloomClient.getCuckooFilter("cf_insert");
List result = cuckooFilter.insert(-1L, false, "a");
redisBloomClient.shutdown();
```
RediSearch
```java
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 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
```java
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
```java
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
```java
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
```java
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 m = new HashMap<>();
m.put("id", 1);
m.put("name", "lisi");
redisJSON.set(key, SetArgs.Builder.create(".", GsonUtils.toJson(m)));
Map actual = redisJSON.get(key, Map.class, new GetArgs().path(".").indent("\t").newLine("\n").space(" "));
redisJSONClient.shutdown();
```
## License
[Apache License 2.0](/LICENSE)