Skip to content

Commit

Permalink
doc updates aligned with 0.5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
lanwen authored and mokies committed Aug 31, 2018
1 parent 75288ca commit b68dd48
Showing 1 changed file with 17 additions and 16 deletions.
33 changes: 17 additions & 16 deletions ratelimitj-redis/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ RateLimitJ - Redis

The RateLimitJ Redis module provides an implementation of a configurable sliding window rate limiting algorithm.

The Redis Module support (RateLimiter)[] and (ReactiveRateLimiter)[] interfaces.
The Redis Module support [RequestRateLimiter](/ratelimitj-core/src/main/java/es/moki/ratelimitj/core/limiter/request/RequestRateLimiter.java) and [ReactiveRequestRateLimiter](/ratelimitj-core/src/main/java/es/moki/ratelimitj/core/limiter/request/ReactiveRequestRateLimiter.java) interfaces.


### Setup
Expand All @@ -20,33 +20,34 @@ The Redis Module support (RateLimiter)[] and (ReactiveRateLimiter)[] interfaces.

#### Basic Synchronous Example
```java
RedisRateLimiterFactory factory = new RedisRateLimiterFactory(RedisClient.create("redis://localhost"));
Set<RequestLimitRule> rules = Collections.singleton(RequestLimitRule.of(1, TimeUnit.MINUTES, 50)); // 50 request per minute, per key
RequestRateLimiter requestRateLimiter = factory.getInstance(rules);
RedisRateLimiterFactory factory = new RedisRateLimiterFactory(RedisClient.create("redis://localhost"));

boolean overLimit = requestRateLimiter.overLimitWhenIncremented("ip:127.0.0.2");
Set<RequestLimitRule> rules = Collections.singleton(RequestLimitRule.of(Duration.ofMinutes(1), 50)); // 50 request per minute, per key
RequestRateLimiter requestRateLimiter = factory.getInstance(rules);

boolean overLimit = requestRateLimiter.overLimitWhenIncremented("ip:127.0.0.2");
```

#### Redis Cluster Example
```java
RequestRateLimiterFactory factory = new RedisClusterRateLimiterFactory(RedisClusterClient.create("redis://localhost"));
Set<RequestLimitRule> rules = Collections.singleton(RequestLimitRule.of(1, TimeUnit.MINUTES, 50)); // 50 request per minute, per key
RequestRateLimiter requestRateLimiter = factory.getInstance(rules);
RequestRateLimiterFactory factory = new RedisClusterRateLimiterFactory(RedisClusterClient.create("redis://localhost"));

Set<RequestLimitRule> rules = Collections.singleton(RequestLimitRule.of(Duration.ofMinutes(1), 50)); // 50 request per minute, per key
RequestRateLimiter requestRateLimiter = factory.getInstance(rules);

boolean overLimit = requestRateLimiter.overLimitWhenIncremented("ip:127.0.0.2");
boolean overLimit = requestRateLimiter.overLimitWhenIncremented("ip:127.0.0.2");
```

#### Multi Rule Reactive Example
```java
RedisRateLimiterFactory factory = new RedisRateLimiterFactory(RedisClient.create("redis://localhost"));;
RedisRateLimiterFactory factory = new RedisRateLimiterFactory(RedisClient.create("redis://localhost"));

Set<RequestLimitRule> rules = new HashSet<>();
rules.add(RequestLimitRule.of(1, TimeUnit.SECONDS, 10));
rules.add(RequestLimitRule.of(3600, TimeUnit.SECONDS, 240).withPrecision(60));
Set<RequestLimitRule> rules = new HashSet<>();
rules.add(RequestLimitRule.of(Duration.ofSeconds(1), 10));
rules.add(RequestLimitRule.of(Duration.ofSeconds(3600), 240).withPrecision(60));
ReactiveRequestRateLimiter requestRateLimiter = factory.getInstanceReactive(rules);

ReactiveRequestRateLimiter requestRateLimiter = factory.getInstance(rules);

Mono<Boolean> overLimit = requestRateLimiter.overLimitWhenIncrementedReactive("ip:127.0.1.6");
Mono<Boolean> overLimit = requestRateLimiter.overLimitWhenIncrementedReactive("ip:127.0.1.6");
```

### Dependencies
Expand Down

0 comments on commit b68dd48

Please sign in to comment.