jedis 操作5種數據類型 及 連接池 的使用

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)最大連接數
  最大空閒連接

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章