Jedis
使用java来操作redis
什么是Jedis?
是Redis官方推荐的java连接开发工具,使用java操作redis的中间件
测试
1、导入对应的依赖
<!--导入jredis的包-->
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
</dependencies>
2、编码测试
- 连接数据库
- 操作命令
- 断开连接
package com.baiyang;
import redis.clients.jedis.Jedis;
public class TestPing {
public static void main(String[] args) {
// 1、new Jedis 对象即可
Jedis jedis = new Jedis("127.0.0.1",6379);
//jedis所有的命令就是之前学习的所有指令
System.out.println(jedis.ping());
}
}
输出
常用的API
String
List
Set
Hash
Zset
参考五大数据类型的命令,一个都没有变化
事务
package com.baiyang;
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;
public class TestTX {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1", 6379); // 连接redis
jedis.flushDB();
JSONObject jsonObject = new JSONObject();
jsonObject.put("hello","world");
jsonObject.put("name","kuangshen");
//开启事务
Transaction multi = jedis.multi();
String result = jsonObject.toJSONString();
// jedis.watch(result); 乐观锁
try {
multi.set("user1", result);
multi.set("user2",result);
int i = 1/0; // 代码抛出异常,事务执行失败
multi.exec(); // 执行事务
} catch (Exception e) { // 虽然是运行时异常,但是try catch执行了discard,放弃了事务
multi.discard(); // 放弃事务
e.printStackTrace();
} finally {
System.out.println(jedis.get("user1"));
System.out.println(jedis.get("user2"));
jedis.close(); // 关闭连接
}
}
}
输出 (虽然是运行时异常,但是是try catch执行了discard,放弃了事务,所以事务执行失败)