The spring data redis always require inputs in byte[], so I tried to create a wrapper class so I don't need to convert String to bytes everytime.
However now I encountered an issue with evalSHA method, since it accepts varargs.
evalSha(byte[] scriptSha, ReturnType returnType, int numKeys, byte[]... keysAndArgs) How to convert my varargs in String to varargs in byte[]?
Below is my current code :
public List<String> evalSHA(String script, int numKeys, String ... keys){ List<String> result = null; RedisConnection redis = redisConnectionFactory.getConnection(); byte[] scriptSHA = redis.get("SCRIPT:CALGROUPQUEUE".getBytes()); if(scriptSHA==null || scriptSHA.length==0){ logger.error("no such script"); return null; } List<byte[]> keysInByte = vargsToList(keys); // what to do below? List<byte[]> resultBytes = redis.evalSha (scriptSHA, ReturnType.MULTI, ???); if(resultBytes!=null && !resultBytes.isEmpty()){ result = new ArrayList<>(); //... to do later } }