Redis(五)【Java操作redis】
五、Jedis
使用Java操作Redis
什么是Jedis
Jedis 是 Redis 官方推荐的 java 连接开发工具!使用Java操作Redis中间件!如果要使用 java 操作 redis,需要对redis有一定基础
- 导入对应的依赖
<!--导入jedis包--> <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.2.1</version> </dependency> <!--fastjson--> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.80</version> </dependency>
- 编码测试
-
连接数据库 操作命令 断开连接
测试连接
package com.vinjcent; 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()); } }
5.1 常用的API
String、List、Set、Hash、Zset
简单的string测试用例
package com.vinjcent; import redis.clients.jedis.Jedis; import java.util.Set; public class TestKey { public static void main(String[] args) { // 连接redis的ip和端口 Jedis jedis = new Jedis("127.0.0.1",6379); System.out.println("清空数据: "+ jedis.flushDB()); System.out.println("判断某个键是否存在: "+jedis.exists("username")); System.out.println("新增<`username`,`vinjcent`>的键值对: "+jedis.set("username","vinjcent")); System.out.println("新增<`password`,`7758258`>的键值对: "+jedis.set("password","7758258")); System.out.println("系统中所有的键如下: "); Set<String> keys = jedis.keys("*"); System.out.println(keys); System.out.println("删除键password: "+jedis.del("password")); System.out.println("判断键password是否存在: "+jedis.exists("password")); System.out.println("查看键username所存储的值的类型: "+jedis.type("username")); System.out.println("随机返回key空间一个: "+jedis.randomKey()); System.out.println("重命名key: "+jedis.rename("username","name")); System.out.println("取出改后的name: "+jedis.get("name")); System.out.println("按索引查询: "+jedis.select(0)); System.out.println("删除当前选择数据库中的所有key: "+jedis.flushDB()); System.out.println("返回当前数据库中的key的数目: "+jedis.dbSize()); System.out.println("删除所有数据库中的所有key:"+jedis.flushAll()); } }
5.2 事务
事务测试用例
package com.vinjcent; import com.alibaba.fastjson.JSONObject; import redis.clients.jedis.Jedis; import redis.clients.jedis.Transaction; public class TransactionTest { public static void main(String[] args) { Jedis jedis = new Jedis("127.0.0.1",6379); jedis.flushDB(); JSONObject jsonObject = new JSONObject(); jsonObject.put("hello","world"); jsonObject.put("name","vinjcent"); //开启事务 Transaction multi = jedis.multi(); String result = jsonObject.toJSONString(); try { multi.set("user1",result); multi.set("user2",result); multi.set("user3",result); int i = 1/0; //代码抛出异常,执行失败 multi.exec(); } catch (Exception e) { //失败则放弃事务 multi.discard(); e.printStackTrace(); }finally { System.out.println(jedis.get("user1")); System.out.println(jedis.get("user2")); System.out.println(jedis.get("user3")); //关闭连接 jedis.close(); } } }
下一篇:
redis实现Feed流滚动分页