Jedi
Jedis é uma biblioteca cliente Redis para a linguagem Java, que fornece interfaces e funções para interagir com o banco de dados Redis. Ao usar o Jedis, você pode se comunicar facilmente com o Redis em seus aplicativos Java.
Jedis fornece uma API concisa, com o comando redis como nome do método, que é fácil de aprender e usar.
Aqui estão alguns usos comuns de Jedis:
-
Conecte-se ao Redis:
Jedis jedis = new Jedis("localhost", 6379);
-
Execute o comando Redis:
jedis.set("key", "value"); String value = jedis.get("key");
-
Operações de valor-chave:
jedis.set("name", "John"); String name = jedis.get("name"); jedis.del("key"); // 删除键 Boolean exists = jedis.exists("key"); // 检查键是否存在
-
Listar operações:
jedis.lpush("list", "item1", "item2"); // 在列表左侧插入元素 List<String> list = jedis.lrange("list", 0, -1); // 获取列表所有元素 Long len = jedis.llen("list"); // 获取列表长度 String item = jedis.lpop("list"); // 弹出列表左侧元素
-
Operação hash:
jedis.hset("hash", "field1", "value1"); String value = jedis.hget("hash", "field1"); Map<String, String> map = jedis.hgetAll("hash"); // 获取哈希表所有字段和值
-
Operações de cobrança:
jedis.sadd("set", "member1", "member2"); // 向集合添加成员 Set<String> set = jedis.smembers("set"); // 获取集合所有成员 Boolean isMember = jedis.sismember("set", "member1"); // 检查成员是否存在于集合中
-
Operações de conjunto ordenado:
jedis.zadd("sortedset", 1.0, "member1"); Double score = jedis.zscore("sortedset", "member1"); Set<Tuple> set = jedis.zrangeWithScores("sortedset", 0, -1); // 获取有序集合的成员和分数
Conjunto de conexões Jedis
Não thread-safe: as instâncias Jedis não são thread-safe e vários threads compartilhando uma instância podem causar conflitos de acesso simultâneos. Para garantir a segurança do thread, um pool de conexões precisa ser usado para gerenciar múltiplas instâncias.
Configurar o pool de conexões Jedis envolve definir alguns parâmetros. A seguir estão as etapas básicas de configuração:
-
Importe Jedis e pacotes de dependências relacionados ao pool de conexões:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>版本号</version> </dependency>
-
Crie um objeto JedisPool e configure-o no código:
import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; // 创建连接池配置对象 JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); // 设置最大连接数 jedisPoolConfig.setMaxTotal(100); // 设置最大空闲连接数 jedisPoolConfig.setMaxIdle(50); // 设置最小空闲连接数 jedisPoolConfig.setMinIdle(10); // 设置连接超时时间(毫秒) jedisPoolConfig.setConnectTimeout(5000); // 创建 JedisPool 对象并进行配置 JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379);
Ao configurar os parâmetros, você pode ajustá-los de acordo com as necessidades reais. Aqui tomamos como exemplos o número máximo de conexões, o número máximo de conexões ociosas, o número mínimo de conexões ociosas e o tempo limite da conexão.
-
Use o pool de conexões para obter uma instância Jedis para operação:
import redis.clients.jedis.Jedis; try (Jedis jedis = jedisPool.getResource()) { // 使用 jedis 进行 Redis 操作 jedis.set("key", "value"); String result = jedis.get("key"); System.out.println(result); }
Ao usar o pool de conexões Jedis,
jedisPool.getResource()
obtenha a instância Jedis do pool de conexões por meio do método e use a estrutura try-with-resources para fechar automaticamente a conexão após o uso.