package cn.itcast.jedis.test;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class JedisTest {
@Test
public void test1_string() {
Jedis jedis = new Jedis("localhost", 6379);
jedis.set("username", "zhangsan");
String name = jedis.get("username");
System.out.println(name);
jedis.close();
}
@Test
public void test2_setex_string() {
Jedis jedis = new Jedis();
jedis.setex("activecode", 20, "hehe");
jedis.close();
}
@Test
public void test3_hash() {
Jedis jedis = new Jedis();
jedis.hset("user", "name", "lisi");
jedis.hset("user", "age", "23");
jedis.hset("user", "gender", "female");
String name = jedis.hget("user", "name");
System.out.println(name);
Map<String, String> user = jedis.hgetAll("user");
Set<String> keySet = user.keySet();
for (String key : keySet) {
String value = user.get(key);
System.out.println(key + ":" + value);
}
jedis.close();
}
@Test
public void test4_list() {
Jedis jedis = new Jedis();
jedis.lpush("mylist", "a", "b", "c");
jedis.rpush("mylist", "a", "b", "c");
List<String> mylist = jedis.lrange("mylist", 0, -1);
System.out.println(mylist);
String ele1 = jedis.lpop("mylist");
System.out.println(ele1);
String ele2 = jedis.rpop("mylist");
System.out.println(ele2);
List<String> mylist2 = jedis.lrange("mylist", 0, -1);
System.out.println(mylist2);
jedis.close();
}
@Test
public void test5_set() {
Jedis jedis = new Jedis();
jedis.sadd("myset", "java", "mysql", "redis");
Set<String> myset = jedis.smembers("myset");
System.out.println(myset);
jedis.close();
}
@Test
public void test6_sortedset() {
Jedis jedis = new Jedis();
jedis.zadd("mysortedset", 3, "亞瑟");
jedis.zadd("mysortedset", 30, "後裔");
jedis.zadd("mysortedset", 55, "孫悟空");
Set<String> mysortedset = jedis.zrange("mysortedset", 0, -1);
System.out.println(mysortedset);
jedis.close();
}
@Test
public void test7_pool() {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(2);
config.setMaxIdle(2);
JedisPool jedisPool = new JedisPool(config, "localhost", 6379);
Jedis jedis = jedisPool.getResource();
jedis.set("hehe", "heihei");
System.out.println(jedis);
jedis.close();
jedis = jedisPool.getResource();
jedis.set("hehe", "heihei");
System.out.println(jedis);
jedis.close();
jedis = jedisPool.getResource();
jedis.set("hehe", "heihei");
System.out.println(jedis);
jedis.close();
}
}
可見,當連接池中的連接用完後,等待歸還到池子中,纔會被其它操作獲取到。這點非常好
筆記
1)連接池jar-->commons-pool202.3.jar
2)使用就3步:
(1)獲取連接
Jedis jedis = new Jedis("localhost", 6379);
(2)操作
jedis.set("username", "zahngsan");
(3)關閉連接
jedis.close();
3)setex("key", 20, "value") --》將key和value存入,20s後刪除. keys * 查看發現就刪除
如: 設置刪除
4)連接池: jedis的是自帶的
(1)創建JedisPool連接池對象
(2)調用方法getResource()方法獲取Jedis連接
5)最大連接數
最大空閒連接