Advertisement
Guest User

Untitled

a guest
Jan 24th, 2020
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. package com.zeetzmc.common.system.jedis;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
  7.  
  8. import com.google.gson.Gson;
  9. import com.google.gson.JsonElement;
  10. import com.google.gson.JsonObject;
  11. import com.google.gson.JsonParser;
  12. import com.zeetzmc.common.profile.ProfileModel;
  13.  
  14. import redis.clients.jedis.Jedis;
  15. import redis.clients.jedis.JedisPool;
  16.  
  17. public class JedisSystem {
  18.  
  19. private String KEY = "#PLAYERSKEY:";
  20.  
  21. private JedisPool jedisPool;
  22. private JsonObject object;
  23. private final JsonParser jsonParser;
  24. private final Gson gson;
  25.  
  26. public JedisSystem() {
  27. object = new JsonObject();
  28. jsonParser = new JsonParser();
  29. gson = new Gson();
  30. GenericObjectPoolConfig config = new GenericObjectPoolConfig();
  31. config.setFairness(true);
  32. config.setMaxTotal(40);
  33. config.setMinIdle(8);
  34. config.setMaxIdle(30000);
  35. jedisPool = new JedisPool(config, "177.54.152.154", 6379);
  36. System.out.println("[REDIS] - Conexão estabelecida com sucesso.");
  37. }
  38.  
  39. public void saveProfile(ProfileModel model) {
  40. try (Jedis jedis = jedisPool.getResource()) {
  41. JsonObject jsonObject = jsonParser.parse(gson.toJson(model)).getAsJsonObject();
  42. Map<String, String> playerElements = new HashMap<>();
  43. for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) {
  44. playerElements.put(entry.getKey(), gson.toJson(entry.getValue()));
  45. }
  46. jedis.hmset(KEY + model.getName(), playerElements);
  47. }
  48. }
  49.  
  50. public ProfileModel getProfile(String name) {
  51. try (Jedis jedis = jedisPool.getResource()) {
  52. object = new JsonObject();
  53. Map<String, String> fields = jedis.hgetAll(KEY + name);
  54. for (Map.Entry<String, String> entry : fields.entrySet()) {
  55. object.add(entry.getKey(), jsonParser.parse(entry.getValue()));
  56. }
  57. return gson.fromJson(object.toString(), ProfileModel.class);
  58. }
  59. }
  60.  
  61. public Jedis getResource() {
  62. return jedisPool.getResource();
  63. }
  64.  
  65. public JedisPool getPool() {
  66. return jedisPool;
  67. }
  68.  
  69. public void disconnect() {
  70. if (jedisPool.isClosed() || jedisPool == null) {
  71. return;
  72. }
  73. jedisPool.close();
  74. System.out.println("[REDIS] - Conexão encerrada com sucesso.");
  75. }
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement