Redis之Jedis如何使用

62次阅读
没有评论

共计 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 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计5243字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)