Jedis

予早 2025-02-21 01:08:23
Categories: Tags:

redis client

Jedis 实例是线程不安全的,多线程环境下需要基于线程池使用。

https://redis.io/resources/clients/#python

 https://pypi.org/project/redis/
 https://github.com/redis/redis-py
 pip install redis
 
 
 https://pypi.org/project/python-redis-lock/
 https://python-redis-lock.readthedocs.io/en/latest/index.html
 pip install python-redis-lock

Jedis

https://github.com/redis/jedis

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.7.1</version>
</dependency>
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.time.Duration;

public class JedisConnectionFactory {
    private static final JedisPool jedisPool;

    static {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //最大连接数
        jedisPoolConfig.setMaxTotal(8);
        //最大空闲连接
        jedisPoolConfig.setMaxIdle(8);
        //最小空闲连接
        jedisPoolConfig.setMinIdle(0);
        //最大等待时间,java.time.Duration应用
        jedisPoolConfig.setMaxWait(Duration.ofMillis(200));
        jedisPool = new JedisPool(jedisPoolConfig, "192.168.25.128", 6379, 1000);
    }

    public static Jedis getJedis() {
        return jedisPool.getResource();
    }
}
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;

import java.util.Map;

/**
 * 1.设定IP监听
 * 2.开放6379端口,或者直接关闭防火墙
 * <p>
 * 1.引入依赖
 * 2.建立连接
 * 3.操作对象
 * 4.释放资源
 */
public class JedisTest {
    private Jedis jedis;

    @BeforeEach
    void setUP() {
        jedis = JedisConnectionFactory.getJedis();
        //jedis = new Jedis("192.168.25.128", 6379);
        //jedis.auth();
        jedis.select(0);
    }

    @Test
    void testString() {
        String result = jedis.set("name", "davis");
        System.out.println("result = " + result);
        String name = jedis.get("name");
        System.out.println("name = " + name);
    }

    @Test
    void testHash() {
        jedis.hset("user:1", "name", "Jack");
        jedis.hset("user:1", "age", "21");
        Map<String, String> map = jedis.hgetAll("user:1");
        System.out.println("map = " + map);
    }

    @AfterEach
    void tearDown() {
        if (jedis != null) jedis.close();//归还资源
    }

}