概述
Jedis
1、概述
Jedis是Redis官方推荐的Java连接开发工具。要在Java开发中使用好Redis中间件,必须对Jedis熟悉才能写成漂亮的代码
2、基本使用
1、pom依赖
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.5.1</version>
</dependency>
2、简单测试
测试连接、发送指令,查询指令。
package com.jedis;
import redis.clients.jedis.Jedis;
public class JedisDemo {
public static void main(String[] args) {
//创建对象
Jedis jedis = new Jedis("localhost",6379);
//测试连接
System.out.println(jedis.ping());
//测试set
jedis.set("tsetkey","testvalue");
System.out.println(jedis.get("tsetkey"));
}
}
执行结果:
3、事务
1、正常运行
package com.jedis;
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;
public class JedisTransactionDemo {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("hello", "world");
jsonObject.put("你好", "世界");
//创建对象
Jedis jedis = new Jedis("localhost", 6379);
//测试连接
System.out.println(jedis.ping());
//清除原来的数据
jedis.flushDB();
//开启事务
Transaction transaction = jedis.multi();
try {
transaction.set("data1", jsonObject.toJSONString());
transaction.set("data2", jsonObject.toJSONString());
//执行事务
transaction.exec();
} catch (Exception e) {
//放弃事务
transaction.discard();
e.printStackTrace();
} finally {
System.out.println(jedis.keys("*"));
System.out.println(jedis.get("data1"));
System.out.println(jedis.get("data2"));
//关闭连接
jedis.close();
}
}
}
执行结果
2、JAVA运行时异常
package com.jedis;
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;
public class JedisTransactionDemo {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("hello", "world");
jsonObject.put("你好", "世界");
//创建对象
Jedis jedis = new Jedis("localhost", 6379);
//测试连接
System.out.println(jedis.ping());
//清除原来的数据
jedis.flushDB();
//开启事务
Transaction transaction = jedis.multi();
try {
transaction.set("data1", jsonObject.toJSONString());
transaction.set("data2", jsonObject.toJSONString());
//添加JAVA运行时异常
int i=1/0;
//执行事务
transaction.exec();
} catch (Exception e) {
//放弃事务
transaction.discard();
e.printStackTrace();
} finally {
System.out.println(jedis.keys("*"));
System.out.println(jedis.get("data1"));
System.out.println(jedis.get("data2"));
//关闭连接
jedis.close();
}
}
}
4、Jedis连接池
package com.jedis;
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Transaction;
/**
* Date: 2021/1/26 11:01
* FileName: JedisPoolDemo
* Description: Jedis连接池
*/
public class JedisPoolDemo {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("hello", "world");
jsonObject.put("你好", "世界");
//1.配置连接池参数
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//在空闲时检查有效性, 默认为true
// setTestWhileIdle(true);
表示一个对象至少停留在idle状态的最短时间,然后才能被idle object evitor扫描并驱逐;
// 这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义
// setMinEvictableIdleTimeMillis(60000);逐出连接的最小空闲时间 默认60000毫秒(10分钟)
//两次扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认10分钟
// setTimeBetweenEvictionRunsMillis(30000);
//表示每次扫描最多的对象数,-1为全部
// setNumTestsPerEvictionRun(-1);
//2.创建连接池对象
JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379);
//3创建对象
Jedis jedis = null;
//开启事务
try {
Transaction transaction = null;
try {
//4从连接池获取对象
jedis = jedisPool.getResource();
//5清除原来的数据
jedis.flushDB();
transaction = jedis.multi();
transaction.set("data1", jsonObject.toJSONString());
transaction.set("data2", jsonObject.toJSONString());
//执行事务
transaction.exec();
} catch (Exception e) {
transaction.discard();
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println(jedis.keys("*"));
System.out.println(jedis.get("data1"));
System.out.println(jedis.get("data2"));
//关闭连接
if (jedis != null) {
jedis.close();
}
//虚拟机关闭时,释放pool资源
if (jedisPool != null) {
jedisPool.close();
}
}
}
}
执行完有一个日志上的报错,之后再看哪里有问题。
最后
以上就是合适悟空为你收集整理的Redis基础学习(六):JAVA操作Redis之JedisJedis2、基本使用的全部内容,希望文章能够帮你解决Redis基础学习(六):JAVA操作Redis之JedisJedis2、基本使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复