什么是jedis
是官方推荐的java连接开发工具,使用java操作Redis的中间件,如果要使用java操作redis,那么要对jedis十分熟悉
测试
导入对应的依赖(Jedis和fastjson):
<dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.2.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependency>
</dependencies>
编码测试:
- 连接数据库
- 操作命令
- 断开连接
修改配置文件(redis.conf):
- 开启云服务器对应端口的防火墙
- 添加密码
- 注释bind 127.0.0.1
- 连接
public class TestPing {public static void main(String[] args) {//new jedis对象Jedis jedis = new Jedis("180.76.150.213",6379);jedis.auth("123");System.out.println(jedis.ping());}
}
如果没有输入密码:
常用API
- String
- List
- Set
- Hash
- Zset
Jedis事务
正常执行:
public class TestTx {public static void main(String[] args) {Jedis jedis = new Jedis("180.76.150.213", 6379);jedis.auth("123");System.out.println(jedis.ping());jedis.flushDB();JSONObject jsonObject = new JSONObject();jsonObject.put("hello","world");jsonObject.put("name","zzy");jsonObject.put("age",20);Transaction multi = jedis.multi();String s = jsonObject.toJSONString();//开启事务try {multi.set("user1",s);multi.set("user2",s);//执行事务multi.exec();}catch (Exception e) {//放弃事务multi.discard();e.printStackTrace();}finally {System.out.println(jedis.get("user1"));System.out.println(jedis.get("user2"));//关闭连接jedis.close();}}
}
抛出异常,执行失败:
public class TestTx {public static void main(String[] args) {Jedis jedis = new Jedis("180.76.150.213", 6379);jedis.auth("123");System.out.println(jedis.ping());jedis.flushDB();JSONObject jsonObject = new JSONObject();jsonObject.put("hello","world");jsonObject.put("name","zzy");jsonObject.put("age",20);Transaction multi = jedis.multi();String s = jsonObject.toJSONString();//开启事务try {multi.set("user1",s);//抛出异常,事务执行失败int i = 1 / 0;multi.set("user2",s);//执行事务multi.exec();}catch (Exception e) {//放弃事务multi.discard();e.printStackTrace();}finally {System.out.println(jedis.get("user1"));System.out.println(jedis.get("user2"));//关闭连接jedis.close();}}
}