Java客户端 Jedis与连接池
Jedis: 一款java操作redis数据库的工具
使用步骤:
1. 下载jedis的jar包(可到maven仓库下载)附网盘地址
链接:(https://pan.baidu.com/s/13MdXgSk_bkeupxFbuPjruw )
提取码:8888
2. 使用
2.1 将jedis.jar包和commons.pool2.jar导入到工程项目中
//1. 获取连接
//2. 操作
jedis.set("username","zhangsan");
//3. 关闭连接
jedis.close();
Jedis操作各种redis中的数据结构
1 字符串类型 string
set
get
Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口
jedis.set("username","zhangsan"); //存储
String name = jedis.get("username"); //取值
Jedi.setex("activecods",20,"hehe"); //jedis中有一个 setex方法可以将activecods(key) hehe(values) 存入redis,
//并且20秒后自动删除该键值对
jedis.close() //关闭连接
2 哈希类型 hash : map格式
hset
hget
hgetAll
Jedis jedis = new Jedis();
Jedis jedis = new Jedis("localhost",6379);
jedis.hset("user","name","lisi");
jedis.hset("user","age","18");
jedis.hset("user","gender","male");
jedis.hget("user","name");
Map<String,String> user= jedis.hgetAll("user");//获取所有元素 并返回一个map集合
//遍历集合
Set<String> keySet = user.keySet();
for(String key : keySet){
String value = user.get(key);
System.out.println("key"+key+"value"+value);
}
jedis.close() ;//关闭连接
3 列表类型 list : linkedlist格式。支持重复元素
lpush / rpush
lpop / rpop
lrange start end : 范围获取
Jedis jedis = new Jedis("localhost",6379);
jedis.lpush("mylist","1","2","3");
jedis.rpush("mylist","5","6");
List<String> mylist = jedis.lrange("mylist", 0, -1);
System.out.println(mylist);
String pop = jedis.lpop("mylist"); //左边弹出一个值并返回
System.out.println(pop);
jedis.close() ;//关闭连接
4 集合类型 set : 不允许重复元素
sadd
smembers:获取所有元素
Jedis jedis = new Jedis();
jedis.sadd("myset","java","php","C++");
Set<String> myset = jedis.smembers("myset");
System.out.println(myset);
jedis.close();
5 有序集合序列 sortedset:不允许重读元素
zadd
zrange
Jedis jedis = new Jedis();
jedis.zadd("mysortedset",3,"盖伦");
jedis.zadd("mysortedset",30,"y亚索");
jedis.zadd("mysortedset",300,"火男");
Set<String> mysortedset = jedis.zrange("mysortedset", 0, -1);
System.out.println(mysortedset);
jedis.close();
##jedis连接池:JediPool
使用 : 1创建1 JedisPool连接池对象
2 调用方法 getResource()方法
//使用
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); //获取配置对象
jedisPoolConfig.setMaxTotal(50); //设置最大连接数
jedisPoolConfig.setMaxIdle(10); //设置最大空闲连接
JedisPool jedisPool = new JedisPool(jedisPoolConfig,"localhost",6379);
Jedis resource = jedisPool.getResource();
//使用
resource.set("hehe","haha");
resource.close(); //归还连接
#Jdeis工具类的创建及使用
1创建JedisPool 的配置文件 jedis.properties (21版idea配置文件应放在resources文件下不然加载文件时会报空指针异常)
![](https://img2022.cnblogs.com/blog/2789097/202203/2789097-20220312164742773-1358961857.png)
2 创建 jedisUtil工具类
package dedistest;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class jdeisUtil {
private static JedisPool jedisPool;
//静态代码块加载资源文件
static{
//读取配置文件
InputStream is = jdeisUtil.class.getClassLoader().getResourceAsStream("jedis.properties");
//创建Properties对象
Properties pro = new Properties();
//关联文件
try {
pro.load(is);
} catch (IOException e) {
e.printStackTrace();
}
//获取数据,设置到 JedisPool对象中
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
jedisPoolConfig.setMaxIdle(Integer.parseInt(pro.getProperty("maxRdle")));
//初始化JedisPool对象
jedisPool = new JedisPool(jedisPoolConfig,pro.getProperty("host"), Integer.parseInt(pro.getProperty("port")));
}
// getJdeis方法返回 jedisPool.getResource 对象
public static Jedis getJdeis(){
return jedisPool.getResource();
}
}
实现类
public class jdeisDemo1 {
public static void main(String[] args) {
Jedis jd = jdeisUtil.getJdeis();
jd.set("name","lisi");
String name = jd.get("name");
System.out.println(name);
jd.close();
}}
本文来自博客园,作者:冰莫莫,转载请注明原文链接:https://www.cnblogs.com/icemomo/p/15997516.html