jedis
线程不安全 所以每个线程需要一个独立的链接 为了保证线程安全 所以需要连接池
创建jedis链接池
java">public class JedisConnectionFactory
{public static final JedisPool jedispool;static{//配置连接池JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();jedisPoolConfig.setMaxTotal(8);jedisPoolConfig.setMaxIdle(8);//最小空闲链接jedisPoolConfig.setMinIdle(0);jedisPoolConfig.setMaxWait(Duration.ofNanos(100000));//创建连接池对象jedispool = new JedisPool(jedisPoolConfig, "xxxxxx",6379, 1000, "XXXXXX");}public static Jedis getJedis(){return jedispool.getResource();}}
说明:
JedisPoolConfig() 创建一个配置对象,使用无参构造方法就可以了
void setMaxTotal() 设置连接池最大的连接数
void setMaxWait() 刚开始没连上最多等待的时间
void setMaxIdle() 设置最大空闲链接数 也就是在线程池中最多有多少个空闲的链接
void setMinIdle() 设置最小空闲连接数
redis_35">使用jedis (jedis的api就是redis命令)
java">public class jedisTest
{private Jedis jedis;@BeforeEachvoid setUp(){jedis = JedisConnectionFactory.getJedis();}@Testvoid testString(){String set = jedis.set("name", "虎哥");System.out.println("set = " + set);String name = jedis.get("name");System.out.println("name = " + name);}@Testvoid testHash(){jedis.hset("user:1","name", "name1");jedis.hset("user:1","age", "1");Map<String, String> stringStringMap = jedis.hgetAll("user:1");stringStringMap.forEach((k,v) -> System.out.println("v = " + v));}@AfterEachvoid tearDown(){if (jedis != null){jedis.close();}}}