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系列的第三篇,后面我会继续更新,写作不易,请各位老铁点个赞支持一下,觉得有帮助的也可以收藏呀,我会经常更新文章,也可以关注我呀

    在这里插入图片描述

  • 相关阅读:
    Spring Cloud Hystrix Dashboard的使用 5.1.3
    Spring Cloud Hystrix 服务容错保护 5.1
    Spring Cloud Ribbon 客户端负载均衡 4.3
    Spring Cloud 如何实现服务间的调用 4.2.3
    hadoop3.1集成yarn ha
    hadoop3.1 hdfs的api使用
    hadoop3.1 ha高可用部署
    hadoop3.1 分布式集群部署
    hadoop3.1伪分布式部署
    KVM(八)使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机
  • 原文地址:https://www.cnblogs.com/pjhaymy/p/13468039.html
Copyright © 2011-2022 走看看