Browse Source

RedisTbTransactionalCache refactored to make doGet using the rawKey and the Redis connection precalculated slot based on hash

pull/10584/head
Sergey Matvienko 2 years ago
parent
commit
034b480a6c
  1. 6
      common/cache/src/main/java/org/thingsboard/server/cache/RedisTbTransactionalCache.java

6
common/cache/src/main/java/org/thingsboard/server/cache/RedisTbTransactionalCache.java

@ -78,7 +78,7 @@ public abstract class RedisTbTransactionalCache<K extends Serializable, V extend
public TbCacheValueWrapper<V> get(K key) {
try (var connection = connectionFactory.getConnection()) {
byte[] rawKey = getRawKey(key);
byte[] rawValue = connection.stringCommands().get(rawKey);
byte[] rawValue = doGet(connection, rawKey);
if (rawValue == null) {
return null;
} else if (Arrays.equals(rawValue, BINARY_NULL_VALUE)) {
@ -95,6 +95,10 @@ public abstract class RedisTbTransactionalCache<K extends Serializable, V extend
}
}
protected byte[] doGet(RedisConnection connection, byte[] rawKey) {
return connection.stringCommands().get(rawKey);
}
@Override
public void put(K key, V value) {
try (var connection = connectionFactory.getConnection()) {

Loading…
Cancel
Save