RedisUtil.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.genersoft.iot.vmp.utils.redis;
  2. import com.google.common.collect.Lists;
  3. import org.springframework.data.redis.core.Cursor;
  4. import org.springframework.data.redis.core.RedisCallback;
  5. import org.springframework.data.redis.core.RedisTemplate;
  6. import org.springframework.data.redis.core.ScanOptions;
  7. import java.util.ArrayList;
  8. import java.util.HashSet;
  9. import java.util.List;
  10. import java.util.Set;
  11. /**
  12. * Redis工具类
  13. *
  14. * @author swwheihei
  15. * @date 2020年5月6日 下午8:27:29
  16. */
  17. @SuppressWarnings(value = {"rawtypes", "unchecked"})
  18. public class RedisUtil {
  19. /**
  20. * 模糊查询
  21. *
  22. * @param query 查询参数
  23. * @return
  24. */
  25. public static List<Object> scan(RedisTemplate redisTemplate, String query) {
  26. Set<String> resultKeys = (Set<String>) redisTemplate.execute((RedisCallback<Set<String>>) connection -> {
  27. ScanOptions scanOptions = ScanOptions.scanOptions().match("*" + query + "*").count(1000).build();
  28. Cursor<byte[]> scan = connection.scan(scanOptions);
  29. Set<String> keys = new HashSet<>();
  30. while (scan.hasNext()) {
  31. byte[] next = scan.next();
  32. keys.add(new String(next));
  33. }
  34. return keys;
  35. });
  36. return Lists.newArrayList(resultKeys);
  37. }
  38. }