- Баллы
- 76
- Имя в Minecraft
- SiRiuS_OSiRiuS
Самая прямая в мире ссылка на оригинал (EN)
Что такое Redis?
Redis - это хранилище вида "ключ-значение", преимущественно основывающееся на словарях (но также поддерживает множество других типов данных). Идеально подходит для Scoreboard'ов, статистик, аккаунтов пользователей и т.д. BuildAPrefix - мой первый пример мощи Redis.
Как его использовать?
Здорово, что спросили! Я буду использовать Apache Maven для того, чтобы обрабатывать зависимости, но вы также можете просто добавить Jedis в ваш build-path. Хороший ресурс - страница на GitHub.
Добавьте Jedis как зависимость. Это довольно просто. Вам также нужно добавить Apache Commons Pool2 для правильной работы Jedis.
Затем внедрите код Jedis в проект. Это важно, потому что если вы не сделаете это, код будет недоступен во время выполнения, и вы будете получать ошибки.
Теперь вам нужно инициализировать JedisPool в методе onEnable(). JedisPool - это потокобезопасный способ доступа к ресурсам Jedis.
Наконец, чтобы использовать Jedis, добавьте
На этом всё! Теперь вы используете Jedis.
Что такое Redis?
Redis - это хранилище вида "ключ-значение", преимущественно основывающееся на словарях (но также поддерживает множество других типов данных). Идеально подходит для Scoreboard'ов, статистик, аккаунтов пользователей и т.д. BuildAPrefix - мой первый пример мощи Redis.
Как его использовать?
Здорово, что спросили! Я буду использовать Apache Maven для того, чтобы обрабатывать зависимости, но вы также можете просто добавить Jedis в ваш build-path. Хороший ресурс - страница на GitHub.
Добавьте Jedis как зависимость. Это довольно просто. Вам также нужно добавить Apache Commons Pool2 для правильной работы Jedis.
HTML:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency>
HTML:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<relocations>
<relocation>
<pattern>redis.clients.jedis</pattern>
<shadedPattern>your.package.here.shaded.redis.clients.jedis</shadedPattern>
<pattern>org.apache.commons</pattern>
<shadedPattern>your.package.here.shaded.org.apache.commons</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Java:
private JedisPool pool;
@Override
public void onEnable() {
/*
* СПАСИБО @Tux за магию с ClassLoader.
*/
ClassLoader previous = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader(RedisDatabase.class.getClassLoader());
pool = new JedisPool("ip", 123 /* Порт */);
Thread.currentThread().setContextClassLoader(previous);
}
@Override
public void onDisable() {
pool.close();
}
Java:
// Try-with-resources будет обрабатывать для нас вызов #close()
try (Jedis jedis = pool.getResource()) {
// Если вы хотите использовать пароль, используйте
jedis.auth("some-secure-password");
jedis.set("key", "value");
getLogger().info(jedis.get("key"));
}
