共计 5243 个字符,预计需要花费 14 分钟才能阅读完成。
这篇文章主要讲解了“Redis 之 Jedis 如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“Redis 之 Jedis 如何使用”吧!
1.Jedis 的介绍
Jedis = Java + Redis
Redis 不仅可以使用命令来操作,现在基本上主流的语言都有 API 支持,比如 Java、C#、C++、PHP、Node.js、Go 等。在官方网站里列一些 Java 的客户端,有 Jedis、Redisson、Jredis、JDBC-Redis 等其中官方推荐使用 Jedis 和 Redisson。
使用 Jedis 操作 redis 需要导入 jar 包如下:
2.Jedis 基本操作 2.1Jedis 对象常用 API
注:每个方法就是 redis 中的命令名,方法的参数就是命令的参数
方法
功能
new Jedis(host, port)
创建 Jedis 的连接,参数:主机名,端口号 6379
set(key,value)
添加一个字符串的键和值
get(key)
得到指定键的值
del(key)
删除指定键和值
hset(key,field,value)
添加一个 hash 类型的键 - 字段 - 值
hget(key,field)
通过 hash 键 - 字段得到它的值
lpush(key,values)
从左边添加一个 list 类型的键和元素
lpop(key)
从左边弹出一个元素
rpop(key)
从右边弹出一个元素
close()
关闭连接
2.2Jedis 的基本操作
操作步骤:
创建 Jedis 对象,指定服务器地址和端口号
向服务器写入
set 字符串类型的数据,person= 张三
lpush 添加 list 类型的数据,cities= 珠海,深圳,广州
从服务器中读取上面的数据打印输出
get 得到字符串的值
lrange 得到 list 所有的列表元素
关闭 Jedis 对象,释放资源
通过客户端查看数据库中是否有数据
控制台输出:
数据库中
代码:
package com.itheima.jedis;
import redis.clients.jedis.Jedis;
import java.util.List;
* 使用 Jedis 向 redis 中添加 string 和 list,读取它们的值
*/
public class Demo1 { public static void main(String[] args) {
// 创建 Jedis 连接对象
Jedis jedis = new Jedis(localhost , 6379);
// 添加 string 类型
jedis.set( person , 张三
// 添加 list 类型
jedis.lpush( cities , 广州 , 上海 , 东莞
// 读取 string 类型
String person = jedis.get( person
// 读取 list 类型
List String cities = jedis.lrange(cities , 0, -1);
// 输出到控制器上
System.out.println(person: + person);
System.out.println(cities: + cities);
// 关闭连接对象
jedis.close();
}
}
3.Jedis 连接池的使用 3.1Jedis 连接池的基本概念
jedis 连接资源的创建与销毁是很消耗程序性能,所以 jedis 为我们提供了 jedis 的连接池技术,jedis
连接池在创建时初始化一些连接对象存储到连接池中,使用 jedis 连接资源时不需要自己创建 jedis 对
象,而是从连接池中获取一个资源进行 redis 的操作。使用完毕后,不需要销毁该 jedis 连接资源,
而是将该资源归还给连接池,供其他请求使用。
3.2Jedis 连接池 API
JedisPoolConfig 配置类
功能说明
JedisPoolConfig()
创建一个配置对象,使用无参构造方法就可以了
void setMaxTotal()
设置连接池最大的连接数
void setMaxWaitMillis()
设置得到连接对象 Jedis 最长等待时间
JedisPool 连接池类
说明
JedisPool(配置对象, 服务器名, 端口号)
创建连接池
参数 1:上面的配置对象,参数 2:服务器名,参数 3:6379
Jedis getResource()
从连接池中得到一个 Jedis 连接对象
void close()
连接池关闭方法,通常不关闭连接池
3.3JedisPool 的基本使用
需求:
使用连接池优化 jedis 操作
开发步骤
创建连接池配置对象,设置最大连接数 10,设置用户最大等待时间 2000 毫秒
通过配置对象做为参数,创建连接池对象
从连接池里面获取 jedis 连接对象,执行 redis 命令。
执行 redis 命令 sadd 写入 set 集合类型的数据:students= 白骨精, 孙悟空, 猪八戒
执行 redis 命令 smembers 读取集合中的数据
输出读取的数据
关闭连接对象 (通常连接池不关闭)
运行效果
执行代码
package com.itheima.jedis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.Set;
* 创建 Jedis 连接池
*/
public class Demo2 { public static void main(String[] args) { //1) 创建连接池配置对象,设置最大连接数 10,设置用户最大等待时间 2000 毫秒
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(10);
config.setMaxWaitMillis(2000);
//2) 通过配置对象做为参数,创建连接池对象
JedisPool pool = new JedisPool(config, localhost , 6379);
//3) 从连接池里面获取 jedis 连接对象,执行 redis 命令。 Jedis jedis = pool.getResource();
//4) 执行 redis 命令 sadd 写入 set 集合类型的数据:students= 白骨精, 孙悟空, 猪八戒
jedis.sadd( students , 白骨精 , 孙悟空 , 猪八戒
//5) 执行 redis 命令 smembers 读取集合中的数据
Set String students = jedis.smembers( students
//6) 输出读取的数据
System.out.println(students);
//7) 关闭连接对象 (通常连接池不关闭)
jedis.close();
pool.close();
}
}
4. 案例:编写 jedis 连接池工具类 4.1 相应 API 的学习
java.util.ResourceBundle 类是专门用于:读取类路径下 Properties 配置文件的类
java.util.ResourceBundle 类
功能
static ResourceBundle getBundle(配置基名)
通过自己的静态方法创建 ResourceBundle 对象
参数:放在 src 下.properties 文件。参数中不用写扩展名,只要有主名就可以了
String getString(键名)
通过键得到值
案例:得到 druid.properties 中的 url 属性
package com.itheima.jedis;
import java.util.ResourceBundle;
* 读取属性文件
*/
public class Demo3 { public static void main(String[] args) {
// 得到资源绑定对象
ResourceBundle bundle = ResourceBundle.getBundle( druid
System.out.println(bundle.getString( url));
}
}
4.2 连接池工具类的实现
需求:
实现连接池工具类,通过工具类得到 Jedis 连接对象,配置参数写在属性文件中
调用工具类,对 Redis 数据库进行操作
执行效果:
实现步骤:
在 src 目录下创建连接池的工具类: jedis.properties
创建静态成员变量 JedisPool 对象
在静态代码块中,读取 src 下的配置文件,得到 ResourceBundle 对象
得到上面的四个参数,其中 host 是字符串类型,其它参数要转成整数类型
实例化配置对象,实例化连接池对象
编写静态方法 getJedis() 返回 Jedis 对象
创建 hash 对象:键 employee,添加字段名:name,值:NewBoy;字段名: salary,值:3000
使用 hgetall 读取 hash 对象输出
关闭 jedis 对象
jedis.properties 配置文件
# 主机名
host=localhost
# 端口号
port=6379
# 最大连接数
maxTotal=20
# 最长等待时间
maxWaitMillis=3000
JedisUtils.java
package com.itheima.utils;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.ResourceBundle;
* 连接池工具类
*/
public class JedisUtils {
// 创建一个连接对象
private static JedisPool pool;
static {
// 创建连接池的配置对象
JedisPoolConfig config = new JedisPoolConfig();
// 设置最大连接数和最长等待时间
ResourceBundle bundle = ResourceBundle.getBundle( jedis
// 得到配置文件中的属性值
String host = bundle.getString( host
int port = Integer.parseInt(bundle.getString( port));
int maxTotal = Integer.parseInt(bundle.getString( maxTotal));
int maxWaitMillis = Integer.parseInt(bundle.getString( maxWaitMillis));
// 设置配置对象的参数
config.setMaxTotal(maxTotal);
config.setMaxWaitMillis(maxWaitMillis);
// 创建连接池对象
pool = new JedisPool(config, host, port);
}
/**
* 得到 redis 连接对象
* @return
*/
public static Jedis getJedis() { return pool.getResource();
}
}
使用工具类:
package com.itheima.jedis;
import com.itheima.utils.JedisUtils;
import redis.clients.jedis.Jedis;
import java.util.Map;
* 使用工具类
*/
public class Demo4 { public static void main(String[] args) {
// 从工具类中得到 Jedis 对象
Jedis jedis = JedisUtils.getJedis();
// 创建 hash 对象:键 employee,添加字段名:name,值:NewBoy;字段名: salary,值:3000
jedis.hset( employee , name , NewBoy
jedis.hset( employee , salary , 3000
// 使用 hgetall 读取 hash 对象输出
Map String, String employee = jedis.hgetAll( employee
System.out.println(employee);
// 关闭 jedis 对象
jedis.close();
}
}
感谢各位的阅读,以上就是“Redis 之 Jedis 如何使用”的内容了,经过本文的学习后,相信大家对 Redis 之 Jedis 如何使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!