Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.opperdev.apispigot.tools.redis;
- import com.google.gson.GsonBuilder;
- import fr.opperdev.apispigot.Main;
- import fr.opperdev.apispigot.tools.Serializer;
- import fr.opperdev.apispigot.tools.User;
- import fr.opperdev.apispigot.tools.UserDeserializer;
- import org.bukkit.Bukkit;
- import redis.clients.jedis.Jedis;
- import redis.clients.jedis.JedisPool;
- import java.util.Set;
- /**
- * Created by user on 22/03/2019.
- */
- public class RedisAPI {
- private JedisPool jedisPool;
- private String password;
- public RedisAPI(String host, int port, String password) {
- this.jedisPool = new JedisPool(host, port);
- this.password = password;
- }
- public <T> void set(String key, T object) {
- Bukkit.getScheduler().runTaskAsynchronously(Main.instance,
- () -> {
- Serializer<T> serializer = new Serializer<T>();
- Jedis jedis = getResource();
- jedis.auth(this.password);
- jedis.set(key, serializer.serialize(object));
- });
- }
- public <T> T get(String key, Class<T> clazz) {
- Serializer<T> serializer;
- if (clazz == User.class) {
- serializer = new Serializer<T>(new GsonBuilder().disableHtmlEscaping().serializeNulls().setPrettyPrinting().registerTypeAdapter(User.class, new UserDeserializer()));
- } else serializer = new Serializer<T>();
- Jedis jedis = getResource();
- jedis.auth(this.password);
- return serializer.deserialize(jedis.get(key), clazz);
- }
- public Set<String> keys(String pattern) {
- Jedis jedis = getResource();
- jedis.auth(this.password);
- return jedis.keys(pattern);
- }
- public boolean exists(String key) {
- return getResource().exists(key);
- }
- public Jedis getResource() {
- return this.jedisPool.getResource();
- }
- public void close() {
- jedisPool.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement