RedisTemplate redisTemplate = redisOps.getTemplate();
                RedisSerializer<String> keyRs = redisTemplate.getKeySerializer();
                RedisSerializer<String>  hashKeySerializer = redisTemplate.getHashKeySerializer();
                RedisSerializer<List<SwarmRobotsDO>>  hashValueSerializer  = redisTemplate.getHashValueSerializer();
                redisTemplate.execute(new RedisCallback<Boolean>() {
                    @Override
                    public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
                        try{
                            Object nativeConnection = connection.getNativeConnection();
                            String hashKey = SwarmRobotsCacheKeyContants.SWARM_ROBOTS_REF_SWARM_KEY_V2 + uuidKey;
                            byte[] key = hashKey.getBytes(StandardCharsets.UTF_8);
                            if(nativeConnection instanceof RedisAsyncCommands){
                                RedisAsyncCommands command = (RedisAsyncCommands) nativeConnection;
                                RedisAsyncCommands rac = command.getStatefulConnection().async();
                                swarmRobotsRefMapper.forEach((k, v) -> {
                                    if(CollUtil.isEmpty(v)){
                                        v = new ArrayList<>();
                                    }
//                                    byte[] keyByte = k.getBytes(StandardCharsets.UTF_8);
//                                    String json = JSON.toJSONString(v);
//                                    json = "[\"java.util.ArrayList\"," + json + "]";
//                                    byte[] valueByte = json.getBytes(StandardCharsets.UTF_8);
//                                    rac.hset(key, keyByte, valueByte);
                                    rac.hset(keyRs.serialize(hashKey),hashKeySerializer.serialize( k),hashValueSerializer.serialize(v));
                                });
                                rac.flushCommands();
                            }else if(nativeConnection instanceof RedisAdvancedClusterAsyncCommands){
                                RedisAdvancedClusterAsyncCommands clusterAsyncCommands = (RedisAdvancedClusterAsyncCommands) nativeConnection;
                                RedisAdvancedClusterAsyncCommands rac = clusterAsyncCommands.getStatefulConnection().async();
                                swarmRobotsRefMapper.forEach((k, v) -> {
                                    if(CollUtil.isEmpty(v)){
                                        v = new ArrayList<>();
                                    }
//                                    byte[] keyByte = k.getBytes(StandardCharsets.UTF_8);
//                                    String json = JSON.toJSONString(v);
//                                    json = "[\"java.util.ArrayList\"," + json + "]";
//                                    byte[] valueByte = json.getBytes(StandardCharsets.UTF_8);
//                                    rac.hset(key, keyByte, valueByte);
                                    rac.hset(keyRs.serialize(hashKey),hashKeySerializer.serialize( k),hashValueSerializer.serialize(v));
                                });
                                rac.flushCommands();
                            }else{
                                log.error("nativeConnection type >> " + nativeConnection);
                            }
                            return true;
                        }catch (Exception e) {
                            log.error("swarmRobotsRefMapper setCache fail", e);
                        }finally {
                            connection.close();
                        }
                        return false;
                    }
                });