Spring Data Redis:Redis Pipeline hget返回的始终为null

时间:2019-04-09 12:26:39

标签: redis spring-data-redis

getRedisTemplate().executePipelined(
    new RedisCallback<Object>() { 
        @Override
        public Object doInRedis(RedisConnection connection) throws DataAccessException {
            connection.hGet(key);

            return null;
        }
    }
);

结果为null,我无法解决。

1 个答案:

答案 0 :(得分:0)

当键或字段不存在或在管道/事务中使用时,hGet返回null。
Here是。
您可以改用lua脚本。

String script = "local a = redis.call('hget','KEYS1','FIELD1')\n"+
                                        "if a then\n"+
                                        "   return redis.call('hincrby','KEYSAND'..a,'FIELD2',1)\n"+
                                        "end";
                                connection.eval(script.getBytes(), ReturnType.INTEGER, 0);