如何在春季redis中获取hgetall结果redisexecutepiplelined为Map <byte [],byte [] =“”>

时间:2018-08-16 12:41:17

标签: java redis

有什么办法,当使用spring redis在管道中执行时,可以获取hgetall请求的List吗?

我正在尝试:

RedisCallback action = connection -> {
        evictDataItems.forEach(evictDataItem->connection.hGetAll(evictDataItem.getPrimaryKey()));
        return null;
    };
    List<Map<byte[],byte[]>> list = template.executePipelined(action);

这些Map的值需要传递给下一个请求。

但是,executePipelined本身使用JDK序列化器将其转换为字符串。 所以我得到了地图。 这些字节是我的自定义字节,是使用多个序列化程序创建的。

所以,请告知我们是否有任何选择。

1 个答案:

答案 0 :(得分:0)

我用过

List<Map<byte[],byte[]>> list = template.executePipelined(action, new BytesRedisSerializer());

public class BytesRedisSerializer implements RedisSerializer {

    @Override
    public byte[] serialize(Object t) throws SerializationException {
        return (byte[]) t;
    }

    @Override
    public Object deserialize(byte[] bytes) throws SerializationException {
        return bytes;
    }

}