RedisClient.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package com.fdkankan.redis.util;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.alibaba.fastjson.JSON;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.fdkankan.scene.httpclient.CustomHttpClient;
  6. import com.google.common.collect.Lists;
  7. import com.google.common.collect.Sets;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.stereotype.Component;
  11. import javax.annotation.Resource;
  12. import java.util.*;
  13. @Component
  14. public class RedisClient {
  15. public final static String url_str_add = "/redis/string/add/";
  16. public final static String url_str_get = "/redis/string/get/";
  17. public final static String url_set_add = "/redis/set/add";
  18. public final static String url_set_getall = "/redis/set/getall";
  19. public final static String url_set_srem = "/redis/set/srem";
  20. public final static String url_hash_hscan = "/redis/hash/hscan";
  21. public final static String url_hash_add = "/redis/hash/add";
  22. public final static String url_hash_hvals = "/redis/hash/hvals";
  23. public final static String url_hash_hdel = "/redis/hash/hdel";
  24. @Value("${redis.host}")
  25. private String host;
  26. @Value("${tieta.sysCode}")
  27. private String sysCode;
  28. @Value("${tieta.serverName}")
  29. private String serverName;
  30. @Resource
  31. private CustomHttpClient customHttpClient;
  32. public void add(String key, String value){
  33. String url = host + url_str_add;
  34. Map<String, Object> params = new HashMap<>();
  35. params.put("key", this.genKey(key));
  36. params.put("value", value);
  37. JSONObject jsonObject = customHttpClient.postJson(url, params);
  38. if(Objects.isNull(jsonObject) || !"0".equals(jsonObject.getString("status"))){
  39. throw new RuntimeException("redis add string error");
  40. }
  41. }
  42. public String get(String key){
  43. String url = host + url_str_get;
  44. Map<String, Object> params = new HashMap<>();
  45. params.put("key", this.genKey(key));
  46. JSONObject jsonObject = customHttpClient.postJson(url, params);
  47. if(Objects.isNull(jsonObject) || !"0".equals(jsonObject.getString("status"))){
  48. throw new RuntimeException("redis get string error");
  49. }
  50. return jsonObject.getString("data");
  51. }
  52. public void sSet(String key, Set<String> values){
  53. String url = host + url_set_add;
  54. Map<String, Object> params = new HashMap<>();
  55. params.put("key", this.genKey(key));
  56. params.put("values", JSON.toJSONString(values));
  57. JSONObject jsonObject = customHttpClient.postJson(url, params);
  58. if(Objects.isNull(jsonObject) || !"0".equals(jsonObject.getString("status"))){
  59. throw new RuntimeException("redis add set error");
  60. }
  61. }
  62. public Set<String> sGet(String key){
  63. String url = host + url_set_getall;
  64. Map<String, Object> params = new HashMap<>();
  65. params.put("key", this.genKey(key));
  66. JSONObject jsonObject = customHttpClient.postJson(url, params);
  67. if(Objects.isNull(jsonObject) || !"0".equals(jsonObject.getString("status"))){
  68. throw new RuntimeException("redis set getall error");
  69. }
  70. List<String> data = jsonObject.getJSONArray("data").toJavaList(String.class);
  71. return new HashSet<>(data);
  72. }
  73. public void setRemove(String key, Set<String> values){
  74. String url = host + url_set_srem;
  75. Map<String, Object> params = new HashMap<>();
  76. params.put("key", this.genKey(key));
  77. params.put("values", values);
  78. JSONObject jsonObject = customHttpClient.postJson(url, params);
  79. if(Objects.isNull(jsonObject) || !"0".equals(jsonObject.getString("status"))){
  80. throw new RuntimeException("redis set srem error");
  81. }
  82. }
  83. public void hmset(String key, Map<String, String> values){
  84. String url = host + url_hash_add;
  85. Map<String, Object> params = new HashMap<>();
  86. params.put("key", this.genKey(key));
  87. params.put("values", values);
  88. JSONObject jsonObject = customHttpClient.postJson(url, params);
  89. if(Objects.isNull(jsonObject) || !"0".equals(jsonObject.getString("status"))){
  90. throw new RuntimeException("redis hash add error");
  91. }
  92. }
  93. public Map<String, String> hmget(String key){
  94. String url = host + url_hash_hscan;
  95. Map<String, Object> params = new HashMap<>();
  96. params.put("key", this.genKey(key));
  97. JSONObject jsonObject = customHttpClient.postJson(url, params);
  98. if(Objects.isNull(jsonObject) || !"0".equals(jsonObject.getString("status"))){
  99. throw new RuntimeException("redis hash hscan error");
  100. }
  101. JSONObject data = jsonObject.getJSONObject("data");
  102. // 转换为Map<String, String>
  103. Map<String, String> map = new HashMap<>();
  104. for (String k : data.keySet()) {
  105. map.put(key, jsonObject.getString(key));
  106. }
  107. return map;
  108. }
  109. public List<String> hMultiGet(String key){
  110. String url = host + url_hash_hvals;
  111. Map<String, Object> params = new HashMap<>();
  112. params.put("key", this.genKey(key));
  113. JSONObject jsonObject = customHttpClient.postJson(url, params);
  114. if(Objects.isNull(jsonObject) || !"0".equals(jsonObject.getString("status"))){
  115. throw new RuntimeException("redis hash get hvals error");
  116. }
  117. List<String> data = jsonObject.getJSONArray("data").toJavaList(String.class);
  118. return data;
  119. }
  120. public void hdel(String key, List<String> fields){
  121. if(CollUtil.isEmpty(fields)){
  122. return;
  123. }
  124. fields.stream().forEach(field->{
  125. Map<String, Object> params = new HashMap<>();
  126. params.put("key", this.genKey(key));
  127. params.put("field", field);
  128. String url = host + url_hash_hdel;
  129. JSONObject jsonObject = customHttpClient.postJson(url, params);
  130. if(Objects.isNull(jsonObject) || !"0".equals(jsonObject.getString("status"))){
  131. throw new RuntimeException("redis hash hdel error");
  132. }
  133. });
  134. }
  135. private String genKey(String key){
  136. return sysCode + "_" + serverName + "_" + key;
  137. }
  138. }