Jedis操作Redis数据库
使用jedis链接redis之前,我们先需要修改一下redis的配置文件。注释掉bind:127.0.0.1。修改完成保存退出,启动redis服务。
1.接下来创建一个普通的maven项目,引入jidis的依赖。
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
然后创建一个测试类进行链接,代码如下:
public class MyJedisTest { public static void main(String[] args) { //1.构造一个 Jedis 对象,因为这里使用的默认端口 6379,所以不用配置端口,当然也指定端口号。 Jedis jedis = new Jedis("192.168.1.11"); //Jedis jedis1 = new Jedis("192.168.1.5", 6379); //2.密码认证 jedis.auth("123456"); String ping = jedis.ping(); System.out.println(ping); String isOk = jedis.set("k1", "abc"); } }
jedis中的方法与客户端的命令基本类似,非常方便记忆。
2.jedis连接池。
在实际应用中,Jedis 实例我们一般都是通过连接池来获取,由于 Jedis 对象不是线城安全的,所以,当
我们使用 Jedis 对象时,从连接池获取 Jedis,使用完成之后,再还给连接池。
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; public class JedisPoolTest { public static void main(String[] args) { Jedis jedis = null; //1. 构造一个 Jedis 连接池 JedisPool pool = new JedisPool("192.168.1.11", 6379); //2. 从连接池中获取一个 Jedis 连接 jedis = pool.getResource(); jedis.auth("123456"); try { //3. Jedis 操作 String ping = jedis.ping(); System.out.println(ping); } catch (Exception e) { e.printStackTrace(); } finally { //4. 归还连接 if (jedis != null) { jedis.close(); } } } }
上段代码比较繁琐,我们利用 JDK1.7 中的 try-with-resource 特性,可以对上面的代码进行改造。
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; public class JedisPoolTest { public static void main(String[] args) { JedisPool pool = new JedisPool("192.168.1.11"); try(Jedis jedis = pool.getResource()) { jedis.auth("123456"); String ping = jedis.ping(); System.out.println(ping); } } }
实际开发过程中,我们还需要根据上述代码来进一步封装。
首先,我们新建一个接口,调用的时候实现这个接口。
public interface CallWithJedis { void call(Jedis jedis); }
然后创建一个Redis类,
public class Redis { private JedisPool pool; public Redis() { GenericObjectPoolConfig config = new GenericObjectPoolConfig(); //连接池最大空闲数 config.setMaxIdle(300); //最大连接数 config.setMaxTotal(1000); //连接最大等待时间,如果是 -1 表示没有限制 config.setMaxWaitMillis(30000); //在空闲时检查有效性 config.setTestOnBorrow(true); /** * 1. Redis 地址 * 2. Redis 端口 * 3. 连接超时时间 * 4. 密码 */ pool = new JedisPool(config, "192.168.1.11", 6379, 30000, "123456"); } public void execute(CallWithJedis callWithJedis) { try (Jedis jedis = pool.getResource()) { callWithJedis.call(jedis); } } }
当我们需要redis操作时,直接先New一个Redis对象,然后执行execute方法,redis的相关操作直接在方法内部执行即可,执行完毕将连接归还连接池。
Redis redis = new Redis(); redis.execute(jedis -> { //进行redis相关操作 System.out.println(jedis.ping()); });
关于Jedis的介绍就先到这里,本篇内容的介绍基于公众号江南一点雨的视频课程进行总结的,大家有兴趣的话可以关注一下。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix