DATAREDIS-313 - Overhaul SCAN, HSCAN, SSCAN, ZSCAN operations.

Unify naming and return types. Update supported commands documentation. Remove key from BoundHashOperations and use getKey() instead.

Original pull request: #81.
DATAREDIS-313 - Overhaul SCAN, HSCAN, SSCAN, ZSCAN operations.

Unify naming and return types.
Update supported commands documentation.
Remove key from BoundHashOperations and use getKey() instead.
Prevent error when trying to read values when there are no values present.
DATAREDIS-314 - Add SCAN commands to Collection types.

Add scan to RedisMap / RedisSet / RedisZSet.
Lua scritps have to be assembled in binary way in order to avoid script errors when executing.
Add missing rules/profiles to run properly in a 2.6.x redis environment.

Original pull request: #82.
DATAREDIS-317 - Report inappropriate RedisTemplate more eagerly in RedisAtomic wrappers.

We now validate the given RedisTemplate in the constructor of RedisAtomicLong/RedisAtomicInteger/RedisAtomicDouble to report an inappropriate RedisTemplate more eagerly.

Original pull request: #83.
DATAREDIS-310 - Eagerly serialise key and value in RedisCache.

We now serialise the key and value before trying to acquire the lock to make sure that the given key and value are written in state they were at method invocation time.

Original pull request: #85.
DATAREDIS-323 - Remove links to forum.spring.io.

Point links to spring-data and spring-data-redis tags on stackoverflow.

Original Pull Request: #86
DATAREDIS-321 - Adapt to Spring 4 upgrade.

Set minimum version dependency to 4.0.6.RELEASE.
DATAREDIS-320 - Updated changelog.
DATAREDIS-322 - Updated changelog.
DATAREDIS-322 - Prepare 1.4.0.M1 (Evans M1).
DATAREDIS-322 - Release version 1.4.0.M1.
DATAREDIS-322 - Prepare next development iteration.
DATAREDIS-322 - After release cleanups.
DATAREDIS-327 - Improve exception handling for all supported clients.

We now consistently return null in implementations of RedisConnectionFactory#translateExceptionIfPossible(RuntimeException ex)
in cases where we cannot translate the given exception into a more meaningful one complying with the spec of PersistenceExceptionTranslator. Introduced the ExceptionTranslationStrategy abstraction which allows to customise the translation of exceptions through the implementations PassThroughExceptionTranslationStrategy which returns null iif the Exception could not be translated and FallbackExceptionTranslationStrategy which returns a RedisSystemException wrapping the original Exception if it couldn't be translated properly.

This fix also solves the issues DATAREDIS-295, DATAREDIS-325, DATAREDIS-326.

Original pull request: #90.
DATAREDIS-333 - Use binary version of Jedis.evalsha()

* JedisConnection.eval() uses binary version of Jedis.eval()
* but JedisConnection.evalsha() uses string version of Jedis.evalsha()
* this commit changes JedisConnection.evalsha() to use binary version of Jedis.evalsha()

---

Original Pull Request: #91
CLA: 88220140729064528 (Jungtaek Lim)
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.
DATAREDIS-330 - Add support for SENTINEL commands.

add support for commands:
  SENTINEL FAILOVER master
  SENTINEL SLAVES master
  SENTINEL REMOVE name
  SENTINEL MONITOR name ip port quorum

Original pull request: #92.
DATAREDIS-335 - Upgrade to jedis 2.5.2.

Original pull request: #93.
DATAREDIS-337 - Improve handling of overridden methods in MessageListenerAdapter.

Previously overriding message handler methods of the delegate passed to MessageListenerAdapter resulted in the message handler method called multiple times. We now make sure that a message handler method is only found and invoked  once.

Original pull request: #95.
DATAREDIS-331 - Updated changelog.