Commit Graph

38 Commits

Author SHA1 Message Date
Mark Paluch
501de9c1fa Update copyright year to 2021.
Closes #1942
2021-01-12 10:44:09 +01:00
Mark Paluch
fff1d3e691 DATAREDIS-1233 - Introduce and use Junit5 based ParameterizedRedisTest. 2020-10-26 10:43:24 +01:00
Mark Paluch
9fbb477057 DATAREDIS-1046 - Upgrade to Redis 6 in CI docker images. 2020-09-14 11:25:07 +02:00
Mark Paluch
717a196da0 DATAREDIS-1145 - Support Sentinel password for Jedis.
We now support password-protected Sentinel configurations when using Jedis.

Original Pull Request: #558
2020-09-11 13:21:31 +02:00
Mark Paluch
d97c5df130 DATAREDIS-1046 - Use ACL authentication when username is configured.
Upgrade to Redis 6 for tests. Introduce support for username in configurations that support authentication.

Original Pull Request: #558
2020-09-11 13:20:48 +02:00
Mark Paluch
fe2c48be1d DATAREDIS-1190 - Polishing.
Make clean after make test to reset potential state-changing configuration updates.

Original Pull Request: #555
2020-08-12 09:48:52 +02:00
Mark Paluch
4f9304c17f DATAREDIS-549 - Polishing.
Redis consistently listens on all addresses. Improve sleep strategy.
2019-07-11 09:36:40 +02:00
Christoph Strobl
1bdf875d45 DATAREDIS-976 - Polishing.
Add missing nullable annotations.

Original pull request: #457
2019-07-03 11:49:16 +02:00
Mark Paluch
80fe233604 DATAREDIS-982 - Upgrade to Redis 5.0.4. 2019-05-13 10:03:11 +02:00
Spring Operator
2eb7067e8c DATAREDIS-948 - URL Cleanup.
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://www.apache.org/licenses/ with 1 occurrences migrated to:
  https://www.apache.org/licenses/ ([https](https://www.apache.org/licenses/) result 200).
* [ ] http://www.apache.org/licenses/LICENSE-2.0 with 763 occurrences migrated to:
  https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200).

Original Pull Request: #442
2019-03-22 10:22:27 +01:00
Mark Paluch
95775176f5 DATAREDIS-920 - Polishing.
Restore Make test target. Use make start/stop in CI script.
2019-03-19 11:14:18 +01:00
Greg Turnquist
82b5c2aa09 DATAREDIS-920 - Move maven command outside of Makefile. 2019-03-14 10:26:50 -05:00
Oliver Drotbohm
2edaa40b9c DATAREDIS-945 - Run Maven with -U on CI. 2019-03-14 16:13:54 +01:00
Greg Turnquist
08acc3aa93 DATAREDIS-920 - Force maven failure. 2019-03-13 23:01:47 -05:00
Greg Turnquist
6574d70fc5 DATAREDIS-920 - Force Makefile to fail during maven failure. 2019-03-13 19:36:49 -05:00
Greg Turnquist
6ea430a46b DATAREDIS-920 - Tune test command. 2019-02-28 07:48:59 -06:00
Greg Turnquist
c8aa0ff019 DATAREDIS-920 - Run 'test' from Makefile. 2019-02-28 07:13:25 -06:00
Greg Turnquist
c4d93870d4 DATAREDIS-920 - Introduce Concourse. 2019-02-27 17:22:49 -06:00
Mark Paluch
3a07a0d8ed DATAREDIS-917 - Update copyright years to 2019. 2019-01-02 14:16:01 +01:00
Christoph Strobl
13648d7c85 DATAREDIS-864 - Allow simple types to be added to Redis Stream.
Move API so the stream is more like the hash having dedicated serializers for fields and their values. Also allow appending simple types such as string directly to a stream without having to go through creating a Map. Those simple types can also be read back.
Provide means to hash complex objects when added to the stream.

Update Documentation.

Original Pull Request: #356
2018-11-22 10:48:16 +01:00
Mark Paluch
65754623f6 DATAREDIS-864 - Add support for Redis Streams.
We now support Redis Streams to add, read and consume stream records. We introduced StreamOperations, BoundStreamOperations, and ReactiveStreamOperations to interact with Redis Streams using imperative and reactive programming models. Record represents items within a stream. There are various flavors of Stream Records:

* MapRecord (maps to the hash body used in stream messages).
* Binary MapRecord: byte[] and ByteBuffer variants of MapRecord.
* ObjectRecord: Simple and Complex Objects mapped onto the stream body hash using ObjectHashMapper.

Redis Streams are supported for the Lettuce client only as Jedis has not received yet Redis Stream support.

Messages can be created as Map or as object:

redisTemplate.opsForStream().add("my-stream", Collections.singletonMap("key", "value"));

redisTemplate.opsForStream().add(ObjectRecord.create("my-logins", new LoginEvent(…)));

Streams can be consumed by using a StreamMessageListenerContainer that allows for stream subscriptions or a StreamReceiver.

Synchronous Message Listener:

StreamMessageListenerContainer<String, MapRecord<String, String, String>> container = StreamMessageListenerContainer
      .create(connectionFactory);
container.start();

Subscription subscription = container.receive(StreamOffset.fromStart("my-stream"), record -> … );

Reactive Message Receiver:

StreamReceiverOptions<String, ObjectRecord<String, LoginEvent>> receiverOptions = StreamReceiverOptions.builder()
      .targetType(LoginEvent.class).build();

StreamReceiver<String, ObjectRecord<String, LoginEvent>> receiver = StreamReceiver.create(connectionFactory, receiverOptions);

Flux<ObjectRecord<String, LoginEvent>> messages = receiver.receive(StreamOffset.fromStart("my-logins"));

Original Pull Request: #356
2018-11-22 10:46:21 +01:00
Christoph Strobl
45cbb21849 DATAREDIS-869 - Polishing.
Rename parameters and add methods with new nomenclature.

Original Pull Request: #355
2018-09-20 10:49:20 +02:00
Mark Paluch
a7352f5612 DATAREDIS-869 - Use changed nomenclature in documentation and readme.
Original Pull Request: #355
2018-09-20 10:48:17 +02:00
Christoph Strobl
6b247992ed DATAREDIS-817 - Upgrade build to use Redis 4.0.9. 2018-04-26 08:52:29 +02:00
Mark Paluch
d08ab93421 DATAREDIS-682 - Connect to Redis using unix domain sockets.
We now support Redis connections using OS-native transports through unix domain sockets when using the Lettuce driver. Domain sockets do not require a roundtrip through the networking layer but directly use native epoll or kqueue interfaces.

LettuceConnectionFactory factory = new LettuceConnectionFactory(new RedisSocketConfiguration("/var/run/redis.sock"));

Unix domain socket support requires netty's native epoll/kqueue dependencies matching the runtime environment:

<dependency>
	<groupId>io.netty</groupId>
	<artifactId>netty-transport-native-epoll</artifactId>
	<classifier>linux-x86_64</classifier>
	<version>${netty}</version>
</dependency>

<dependency>
	<groupId>io.netty</groupId>
	<artifactId>netty-transport-native-kqueue</artifactId>
	<classifier>osx-x86_64</classifier>
	<version>${netty}</version>
</dependency>

Original Pull Request: #286
2017-11-17 17:13:41 +01:00
Christoph Strobl
1e2a0f858f DATAREDIS-576 - Polishing.
Update Javadoc, apply missing @Nullable annotations, add tests and alter makefile to use Redis 4.0.2.

Original Pull Request: #285
2017-10-19 10:31:46 +02:00
Christoph Strobl
00add116e9 DATAREDIS-685 - Update test configuration to use Redis 4.0.1.
Alos alter ClusterConnectionTests to be more robust.
2017-08-31 13:01:47 +02:00
Christoph Strobl
639b1e2b55 DATAREDIS-589 - Move secondary index cleanup to MappingExpirationListener.
We now no longer rely on ApplicationEvents captured in the RedisKeyValueAdapter for performing cleanup operations for expired keys, but do this along with the phantom key removal. This removes a flaw when initializing a non repository related KeyspaceEventListener publishing events that actually are unrelated to the Adapter.

Additionally upgraded test infrastructure to utilize Redis 3.2.6 with disabled protected-mode and enabled keyspace-events.

Original pull request: #232.
2017-01-12 14:52:59 +01:00
Mark Paluch
1a332c0f57 DATAREDIS-506 - Upgrade to Jedis 2.9.0.
We now support Jedis 2.9.0 with Redis Standalone SSL and Redis Cluster with passwords. The code is compatible with Jedis 2.8.0 when not using SSL or Redis Cluster with passwords.

Original Pull Request: #211
2016-07-26 15:48:03 +02:00
Christoph Strobl
f732b5f6b9 DATAREDIS-438 - Polishing.
RedisGeoCommands now take and return Spring Data domain types like Distance and GeoResults.
Updated JavaDoc and Reference documentation.
Added and updated author and license headers.
Fixed minor formatting and code style issues.

Original Pulll Request: #187
2016-05-23 07:07:50 +02:00
Ninad Divadkar
b0e20d3da8 DATAREDIS-438 - Add support for geo commands.
Original Pulll Request: #187
CLA: 169220160326121428 (Ninad Divadkar)
2016-05-18 16:04:45 +02:00
Christoph Strobl
a6ab1b53b3 DATAREDIS-315 - Update Makefile to spin up cluster.
Original pull request: #158.
2016-02-09 14:53:31 +01:00
Christoph Strobl
b6e90752e7 DATAREDIS-419 - Move project build to Maven.
- Introduce Maven pom.xml.
- Moved Asciidoctor files to src/main/asciidoc.
- Moved notice.txt etc. to src/main/resources.
- Add logback.xml
- Update Makefile to use maven and pick build profiles.
- Update template.mf to pick up versions in pom.xml
- Add build matrix for spring versions to .travis.yml
- Use container based travis infrastructure.
- Update readme.
2016-01-29 20:09:21 +01:00
Christoph Strobl
444b290863 DATAREDIS-348 - Polishing.
Fixed connection problems leaving sockets open. Added missing JUnit rules for Sentinels. Added missing author information update, license header and Javadoc.

Upgraded test script to use Redis 3.0.2. Upgrade test script to shut down Redis in case of test errors. Added Redis 3.0 to TestProfileValueSource. Enabled ZRANGEBYLEX tests for lettuce.

Original pull request: #144.
Related pull request: #104.
2015-08-04 10:12:39 +02:00
Thomas Darimont
45a0c95c82 DATAREDIS-380 - Use Redis 2.8.19 for tests.
Updated redis version.

Original Pull Request: #131
2015-03-11 15:02:34 +01:00
Thomas Darimont
f6a7ec5917 DATAREDIS-351 - Update build to latest redis version.
Upgrade makefile to redis 2.8.17
2014-10-23 08:44:00 +02:00
David Liu
9ecad07587 DATAREDIS-197 - Expose bit-related ops via ValueOperations.
Polishing. Added -S switch to gradlew in makefile for better Stacktrace reporting.

Original pull request: #96.
2014-09-30 10:28:53 +02:00
Christoph Strobl
55ff415a71 DATAREDIS-324 - Add Redis Sentinel support.
We’ve added RedisSentinelConfiguration holding required information for connecting to redis sentinels. This can be used to set up ConnectionFeactory for HA environments.

**Using Jedis**
Providing RedisSentinelConfiguration will force the JedisConnectionFactory to use JedisSentinelPool for managing resources.

**Using Lettuce/JRedis/SRP**
There’s currently no support for sentinel in those clients.

**CI Build**
We’ve added makefile to build and set up redis instances for testing sentinel support on travis-ci. There’s already a section for redis cluster.
The cluster section is for whatever reason currently not working as the cluster nodes won’t start.
This will be fixed when we add redis-cluster support.

_side note:_ there’s an alternative fork of lettuce at mp911de/lettuce that already has sentinel support.
2014-08-05 09:00:15 +02:00