jedis 操作5种数据类型 及 连接池 的使用

爷,独闯天下 提交于 2020-08-05 05:01:51
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)最大连接数
  最大空闲连接

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!