redis.clients.util.Hashing Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jedis Show documentation
Show all versions of jedis Show documentation
Jedis Redis java client with some modifications to support new commands in YB Redis.
package redis.clients.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public interface Hashing {
public static final Hashing MURMUR_HASH = new MurmurHash();
public ThreadLocal md5Holder = new ThreadLocal();
public static final Hashing MD5 = new Hashing() {
@Override
public long hash(String key) {
return hash(SafeEncoder.encode(key));
}
@Override
public long hash(byte[] key) {
try {
if (md5Holder.get() == null) {
md5Holder.set(MessageDigest.getInstance("MD5"));
}
} catch (NoSuchAlgorithmException e) {
throw new IllegalStateException("++++ no md5 algorythm found");
}
MessageDigest md5 = md5Holder.get();
md5.reset();
md5.update(key);
byte[] bKey = md5.digest();
long res = ((long) (bKey[3] & 0xFF) << 24) | ((long) (bKey[2] & 0xFF) << 16)
| ((long) (bKey[1] & 0xFF) << 8) | (long) (bKey[0] & 0xFF);
return res;
}
};
public long hash(String key);
public long hash(byte[] key);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy