笔记内容来自B站博主《遇见狂神说》:Redis视频链接
Jedis 是一个用于 Java 的 Redis 客户端库,它提供了一组 API 用于与 Redis 数据库进行交互。Redis 是一个高性能的键值存储数据库,广泛用于缓存、消息队列等场景。Jedis 使得 Java 开发者能够方便地与 Redis 进行通信,执行 Redis 命令,并操作 Redis 数据结构。
1、简单了解Jedis
SpringBoot 引入 Jedis
pom.xml
<dependencies>
<!-- 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>2.0.49</version>
</dependency>
</dependencies>
Jedis源码
可以进入 Jedis 源码看一下,Jedis 构造函数还是挺多的,一般我们用的也就是ip+端口号。
jedis.class
2、代码测试
连接数据库
package oldfe.study;
import redis.clients.jedis.Jedis;
public class Main {
public static void main(String[] args) {
// 1、 new Jedis 对象
Jedis jedis = new Jedis("127.0.0.1", 6379);
// 2、如果设置密码,需要 auth方法进行密码认证
jedis.auth("123456");
// 3、ping
System.out.println(jedis.ping());
jedis.close(); // 关闭连接
}
}
输出:
返回表示 PONG 已经连接上
常用 API
基本API
package oldfe.study;
import redis.clients.jedis.Jedis;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.auth("123456");
System.out.printf("清空全部数据库:%s %n", jedis.flushAll());
System.out.printf("清空当前数据库:%s %n", jedis.flushDB());
System.out.printf("判断某个键是否存在:%s %n", jedis.exists("name"));
System.out.printf("新增<'name', 'OldFe'>键值对::%s %n", jedis.set("name", "OldFe"));
System.out.printf("新增<'age', '16'>键值对::%s %n", jedis.set("age", "16"));
System.out.printf("在集合的键值列表头部插入一个值:%s %n", jedis.lpush("listKey", "listValue"));
System.out.printf("系统中所有的键如下:");
Set<String> keys = jedis.keys("*");
System.out.println(keys);
System.out.printf("删除键age:%s %n", jedis.del("age"));
System.out.printf("判断键age是否存在: %s %n", jedis.exists("age"));
System.out.printf("判断键name所储存的值的类型: %s %n", jedis.type("name"));
System.out.printf("判断键listKey所储存的值的类型: %s %n", jedis.type("listKey"));
System.out.printf("随机返回可以空间的一个: %s %n", jedis.randomKey());
System.out.printf("重命名键name为name1: %s %n", jedis.rename("name", "name1"));
System.out.printf("返回键name1的值: %s %n", jedis.get("name1"));
System.out.printf("按索引查询第1个数据库: %s %n", jedis.select(0)); // Redis 一共有16个数据库(索引下标:0-15)
System.out.printf("返回当前数据库的键: %s %n", jedis.keys("*"));
System.out.printf("返回当前数据库键的数目: %s %n", jedis.dbSize());
}
}
// 输出:
清空全部数据库:OK
清空当前数据库:OK
判断某个键是否存在:false
新增<'name', 'OldFe'>键值对::OK
新增<'age', '16'>键值对::OK
在集合的键值列表头部插入一个值:1
系统中所有的键如下:[name, listKey, age]
删除键age:1
判断键age是否存在: false
判断键name所储存的值的类型: string
判断键listKey所储存的值的类型: list
随机返回可以空间的一个: listKey
重命名键name为name1: OK
返回键name1的值: OldFe
按索引查询第1个数据库: OK
返回当前数据库的键: [name1, listKey]
返回当前数据库键的数目: 2
字符串 String
package oldfe.study;
import redis.clients.jedis.Jedis;
import java.util.concurrent.TimeUnit;
public class TestString {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.auth("123456");
jedis.flushDB();
System.o