Java Redis系列3(Jedis的使用+jedis连接池技术)
时间:2022-07-25
本文章向大家介绍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系列的第三篇,后面我会继续更新,写作不易,请各位老铁点个赞支持一下,觉得有帮助的也可以收藏呀,我会经常更新文章,也可以关注我呀
- HDU 1166 敌兵布阵(线段树单点更新,板子题)
- 一文看懂ovirt的supervdsmd服务
- openstack如何扩展API之二:扩展原有核心API
- selenium+python自动化77-autoit文件上传
- selenium+python自动化78-autoit参数化与批量上传
- libvirt-内存分配和内存热插拔
- selenium+python自动化79-文件下载(SendKeys)
- selenium+python自动化80-文件下载(不弹询问框)
- libvirt-cpu分配和cpu热插拔
- 如何使用curl调试openstack的api
- selenium+python自动化81-报告优化
- Selenium+python自动化82-只截某个元素的图
- libvirt-TLS加密
- 在openstck中配置使用cloud-init
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法