前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java Redis系列3(Jedis的使用+jedis连接池技术)

Java Redis系列3(Jedis的使用+jedis连接池技术)

作者头像
一只胡说八道的猴子
发布2020-09-27 10:25:35
9150
发布2020-09-27 10:25:35
举报
文章被收录于专栏:Java系列学习与数据结构算法

Jedis的使用

什么是Jedis?

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

使用步骤

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

代码语言:javascript
复制
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

代码语言:javascript
复制
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格式

代码语言:javascript
复制
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

代码语言:javascript
复制
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 不允许重复元素

代码语言:javascript
复制
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 不允许重复元素,且集合有序

代码语言:javascript
复制
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连接池技术

代码语言:javascript
复制
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目录下)

代码语言:javascript
复制
host:127.0.0.1
port:6379
maxTotal:50
maxIdle:10

工具类代码

代码语言:javascript
复制
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;
    }
}

测试类代码

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Jedis的使用
  • 什么是Jedis?
  • 使用步骤
  • Jedis操作不同的redis中的数据结构
  • 1.字符串
  • 2.hash类型:map格式
  • 3.列表类型list
  • 4.集合类型:set 不允许重复元素
  • 5.有序集合类型:sortedset 不允许重复元素,且集合有序
  • Jedis连接池技术
  • 使用工具类创建数据库连接池
  • 以上就是jedis的一些基础操作及怎么使用jedis连接池,这也是我JAVA redis系列的第三篇,后面我会继续更新,写作不易,请各位老铁点个赞支持一下,觉得有帮助的也可以收藏呀,我会经常更新文章,也可以关注我呀
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档