zoukankan      html  css  js  c++  java
  • Java Redis系列3(Jedis的使用+jedis连接池技术)

    Jedis的使用

    什么是Jedis?

    一款Java操作redis数据库的工具

    使用步骤

    1.下载redis所需的java包
    2.使用步骤

    import org.junit.Test;
    public class Jedis {
        @Test
        public void test1(){
            //获取连接
            //如果使用空参构造,默认值 "localhost",6379端口
            redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
            //设置数据
            jedis.set("name","zhangsna");
            //关闭连接
            jedis.close();
        }
    }
    

    Jedis操作不同的redis中的数据结构

    1.字符串

    设置:set
    获取:get

    import org.junit.Test;
    public class Jedis {
        @Test
        public void test1(){
            //获取连接
            redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
            //设置数据
            jedis.set("name","zhangsna");
            //获取参数
            String name = jedis.get("name");;
            //关闭连接
            jedis.close();
        }
    }
    

    2.hash类型:map格式

    import org.junit.Test;
    import java.util.Map;
    public class Jedis {
        @Test
        public void test1(){
            //获取连接
            //如果使用空参构造默认是localhost,3670端口
            redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
            //设置数据
            jedis.hset("user","name","zhangsan");
            jedis.hset("user","id","13");
            //获取数据
            jedis.hget("user","name");
            //获取全部数据
            Map<String, String> user = jedis.hgetAll("user");
            //关闭连接
            jedis.close();
        }
    }
    

    3.列表类型list

    import org.junit.Test;
    public class Jedis {
        @Test
        public void test1(){
            //获取连接
            //如果使用空参构造默认是localhost,3670端口
            redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
            //设置数据
            //左边添加数据
           jedis.lpush("list","a");
           //右边添加数据
           jedis.rpush("list","b");
           //获取指定范围内的数据
            jedis.lrange("list" ,0,-1);
           //移除最右边的数据并返回值
            String list = jedis.rpop("list");
            //移除最左边的数据并返回值
            String list1 = jedis.lpop("list");
            //关闭连接
            jedis.close();
        }
    }
    

    4.集合类型:set 不允许重复元素

    import org.junit.Test;
    import java.util.Set;
    public class Jedis {
        @Test
        public void test1(){
            //获取连接
            //如果使用空参构造默认是localhost,3670端口
            redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
            //设置数据
           jedis.sadd("set","a");
           jedis.sadd("set","b");
           //获取集合中的全部数据
            Set<String> set = jedis.smembers("set");
            //移除集合中的指定数据
           jedis.srem("a");
            //关闭连接
            jedis.close();
        }
    }
    

    5.有序集合类型:sortedset 不允许重复元素,且集合有序

    import org.junit.Test;
    import java.util.Set;
    public class Jedis {
        @Test
        public void test1(){
            //获取连接
            //如果使用空参构造默认是localhost,3670端口
            redis.clients.jedis.Jedis jedis = new redis.clients.jedis.Jedis();
            //设置数据
           jedis.zadd("sortedset",2,"a");
           jedis.zadd("sortedset",1,"b");
           //获取集合中的全部数据
           jedis.zrange("sortedset",0,-1);
            //移除集合中的指定数据
            jedis.zrem("sortedset", "a");
            //关闭连接
            jedis.close();
        }
    }
    

    Jedis连接池技术

    import org.junit.Test;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    public class Jedis {
        @Test
        public void test1(){
            //创建一个配置对象
            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
            //设置参数
            //最大空闲数
            jedisPoolConfig.setMaxIdle(50);
            //最大连接数
            jedisPoolConfig.setMaxTotal(50);
            //创建数据库连接池对象
            JedisPool pool= new JedisPool(jedisPoolConfig, "localhost", 6379);
            //获取连接
            redis.clients.jedis.Jedis resource = pool.getResource();
            //使用
            resource.set("username","zhangsan");
            //归还连接到数据库连接池
            resource.close();
        }
    }
    

    使用工具类创建数据库连接池

    配置文件信息(放在src目录下)

    host:127.0.0.1
    port:6379
    maxTotal:50
    maxIdle:10
    

    工具类代码

    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    public class JedisUtil {
        private static JedisPool jedisPool;
        //使用静态代码块加载配置文件
        static {
            //读取配置文件
            InputStream resourceAsStream = JedisUtil.class.getClassLoader().getResourceAsStream("jedis.properties");
            //创建properties对象
            Properties properties = new Properties();
           //关联文件
            try {
                properties.load(resourceAsStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
            //创建配置文件对象
            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
            jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal")));
            jedisPoolConfig.setMaxIdle(Integer.parseInt("maxIdle"));
            //初始化jedispool
            jedisPool=new JedisPool(jedisPoolConfig,properties.getProperty("host"),Integer.parseInt(properties.getProperty("port")));
    
        }
        //获取连接
        public static  JedisPool getJedisPool(){
            return  jedisPool;
        }
    }
    

    测试类代码

    import org.junit.Test;
    import redis.clients.jedis.JedisPool;
    public class Jedis {
        @Test
        public void test1(){
            //使用工具类获取连接池
            JedisPool jedisPool = JedisUtil.getJedisPool();
            //获取连接
            redis.clients.jedis.Jedis resource = jedisPool.getResource();
            //使用连接操作
            resource.set("name", "zhangsan");
            //归还连接
        }
    }
    

    以上就是jedis的一些基础操作及怎么使用jedis连接池,这也是我JAVA redis系列的第三篇,后面我会继续更新,写作不易,请各位老铁点个赞支持一下,觉得有帮助的也可以收藏呀,我会经常更新文章,也可以关注我呀

    在这里插入图片描述

  • 相关阅读:
    CEAC认证
    CEAC认证
    java 和.net 开发平台的感受(菜鸟级)
    NBA现场直播在线看
    NBA现场直播在线看
    CEAC认证
    NBA现场直播在线看
    NBA现场直播在线看
    选择冒泡排序
    折半查找法
  • 原文地址:https://www.cnblogs.com/pjhaymy/p/13468039.html
Copyright © 2011-2022 走看看