Jedis
我们要使用Java来操作Redis
什么是Jedis 是 Redis 官方推荐的java连接开发工具!使用Java操作Redis中间件,如果你要使用java操作redis,那么一定要对Jedis十分熟悉!
测试
1、导入对应的依赖
<!--导入jedis的包-->
<dependencies>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.2.3</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.72</version>
</dependency>
</dependencies>
2、代码测试
- 连接数据库
- 操作命令
- 断开连接
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
所有的 PAI 命令就是之前对应的的命令,一个都没变化
public class JedisTest {
public static void main(String[] args) {
keyTest();
}
public static Jedis init() {
DefaultJedisClientConfig config = DefaultJedisClientConfig.builder().password("123456").build();
return new Jedis("127.0.0.1", 6379, config);
}
public static void keyTest() {
Jedis jedis = init();
Set<String> keys = jedis.keys("*");
keys.forEach(System.out::println);
jedis.flushDB();
// String
jedis.mset("k1", "v1", "k2", "v2");
jedis.mget("k1", "v1");
// List
jedis.lpush("myList", "1", "2", "3", "4", "5");
List<String> myList = jedis.lrange("myList", 0, -1);
myList.forEach(System.out::println);
// set
jedis.sadd("mySet", "one", "two", "three", "four", "five");
Set<String> mySet = jedis.smembers("mySet");
mySet.forEach(System.out::println);
// hash
HashMap<String, String> map = new HashMap<>();
map.put("name", "hudu");
map.put("age", "18");
map.put("gender", "男");
jedis.hset("myHash", map);
Map<String, String> myHash = jedis.hgetAll("myHash");
Set<Map.Entry<String, String>> entries = myHash.entrySet();
entries.forEach(e -> {
System.out.println(e.getKey() + "---" + e.getValue());
});
// zset
jedis.zadd("account", 2500, "HuDu");
jedis.zadd("account", 5000, "Lily");
jedis.zadd("account", 2000, "Alex");
List<String> account = jedis.zrange("account", 0, -1);
account.forEach(System.out::println);
List<Tuple> accountInfo = jedis.zrangeByScoreWithScores("account", 2000, 5000);
accountInfo.forEach(a -> System.out.println(a.getElement() + "---" + a.getScore()));
}
}
事务
public static void main(String[] args) {
//创建客户端连接服务端,redis服务端需要被开启
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.flushDB();
JSONObject jsonObject = new JSONObject();
jsonObject.put("hello", "world");
jsonObject.put("name", "java");
//开启事务
Transaction multi = jedis.multi();
String result = jsonObject.toJSONString();
try{
//向redis存入一条数据
multi.set("json", result);
//再存入一条数据
multi.set("json2", result);
//这里引发了异常,用0作为被除数
int i = 100/0;
//如果没有引发异常,执行进入队列的命令
multi.exec();
}catch(Exception e){
e.printStackTrace();
//如果出现异常,回滚
multi.discard();
}finally{
System.out.println(jedis.get("json"));
System.out.println(jedis.get("json2"));
//最终关闭客户端
jedis.close();
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
👍进步不少