Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.zeetzmc.common.system.jedis;
- import java.util.HashMap;
- import java.util.Map;
- import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
- import com.google.gson.Gson;
- import com.google.gson.JsonElement;
- import com.google.gson.JsonObject;
- import com.google.gson.JsonParser;
- import com.zeetzmc.common.profile.ProfileModel;
- import redis.clients.jedis.Jedis;
- import redis.clients.jedis.JedisPool;
- public class JedisSystem {
- private String KEY = "#PLAYERSKEY:";
- private JedisPool jedisPool;
- private JsonObject object;
- private final JsonParser jsonParser;
- private final Gson gson;
- public JedisSystem() {
- object = new JsonObject();
- jsonParser = new JsonParser();
- gson = new Gson();
- GenericObjectPoolConfig config = new GenericObjectPoolConfig();
- config.setFairness(true);
- config.setMaxTotal(40);
- config.setMinIdle(8);
- config.setMaxIdle(30000);
- jedisPool = new JedisPool(config, "177.54.152.154", 6379);
- System.out.println("[REDIS] - Conexão estabelecida com sucesso.");
- }
- public void saveProfile(ProfileModel model) {
- try (Jedis jedis = jedisPool.getResource()) {
- JsonObject jsonObject = jsonParser.parse(gson.toJson(model)).getAsJsonObject();
- Map<String, String> playerElements = new HashMap<>();
- for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) {
- playerElements.put(entry.getKey(), gson.toJson(entry.getValue()));
- }
- jedis.hmset(KEY + model.getName(), playerElements);
- }
- }
- public ProfileModel getProfile(String name) {
- try (Jedis jedis = jedisPool.getResource()) {
- object = new JsonObject();
- Map<String, String> fields = jedis.hgetAll(KEY + name);
- for (Map.Entry<String, String> entry : fields.entrySet()) {
- object.add(entry.getKey(), jsonParser.parse(entry.getValue()));
- }
- return gson.fromJson(object.toString(), ProfileModel.class);
- }
- }
- public Jedis getResource() {
- return jedisPool.getResource();
- }
- public JedisPool getPool() {
- return jedisPool;
- }
- public void disconnect() {
- if (jedisPool.isClosed() || jedisPool == null) {
- return;
- }
- jedisPool.close();
- System.out.println("[REDIS] - Conexão encerrada com sucesso.");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement