使用Jedis来操控Redis

作者:ChenZhen

博客地址:https://www.chenzhen.space/

版权:本文为博主 ChenZhen 的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。

如果对你有帮助,请给一个小小的star⭐


1.启动Redis服务

在使用Jedis之前,首先要保证你的虚拟机上或者云服务器上的Redis服务已经开启,使用指令查看

ps -ef|grep redis

已启动↓
在这里插入图片描述

如果服务没有开启↓,则先开启服务
在这里插入图片描述

来到你的Redis安装目录我这里是/usr/local/bin,有以下文件

  • redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
  • redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
  • redis-check-dump:修复有问题的dump.rdb文件
  • redis-sentinel:Redis集群使用
  • redis-server:Redis服务器启动命令
  • redis-cli:客户端,操作入口

前台启动(不推荐)

前台启动,命令行窗口不能关闭,否则服务停止
在这里插入图片描述

后台启动(推荐)

修改redis.conf配置文件

后台启动设置daemonizeno改成yes
在这里插入图片描述

这里顺便设置注释掉bind 127.0.0.1 ,然后 protected-mode 设置为no,为后面远程连接做准备,这样子后面可以不用重启服务

使用 /关键字 可以快速查找

在这里插入图片描述
在这里插入图片描述

Redis启动

回到你的安装目录下,运行指令redis-server,后面跟上你的redis.conf配置文件路径

redis-server /etc/redis.conf

在这里插入图片描述

再次查看后台进程,redis服务成功启动

在这里插入图片描述

2.开放端口

在redis.conf中注释掉bind 127.0.0.1 ,然后 protected-mode 设置为no

修改了配置文件需要重启redis服务

要让外部能够成功连接上Redis,还要开放防火墙的6379端口

firewall-cmd --permanent --add-port=6379/tcp

permanent:表示永久生效,即使机器重启

查看防火墙状态

firewall-cmd --list -all

6379端口已经开放

在这里插入图片描述

3.导入依赖

		<dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>4.1.0</version>
        </dependency>

调用Jedis的构造方法,第一个参数是Redis服务器的Ip地址(填自己的),第二是端口号
在调用ping()方法测试是否连接上

 Jedis jedis = new Jedis("192.168.43.128", 6379);
        // 如果有密码
        // jedis.auth("123321");
        String ping = jedis.ping();
        System.out.println("ping = " + ping);
       

输出pong表示成功连接Redis

在这里插入图片描述

连接完成之后就可以调用redis对象里的各种方法对Redis进行操作了,方法名与实际操作的指令名基本一致,使用起来十分容易

配置连接池

通过jedis自己提供的连接池对象,配置连接池

节省每次连接redis服务带来的消耗,把连接好的实例反复利用。

通过参数管理连接的行为,解决连接超时的问题

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisPoolUtil {
	private static volatile JedisPool jedisPool = null;

	private JedisPoolUtil() {
	}

	public static JedisPool getJedisPoolInstance() {
		if (null == jedisPool) {
			synchronized (JedisPoolUtil.class) {
				if (null == jedisPool) {

					JedisPoolConfig poolConfig = new JedisPoolConfig();
					poolConfig.setMaxTotal(10); //最大连接数
					poolConfig.setMaxIdle(8); //最大空闲连接
					poolConfig.setMinIdle(0);//最小空闲连接
					poolConfig.setMaxWaitMillis(100*1000);
					poolConfig.setBlockWhenExhausted(true);
					poolConfig.setTestOnBorrow(true);

					//连接池配置,ip,端口号,超时时间(ms)
					jedisPool = new JedisPool(poolConfig, "192.168.43.128", 6379, 6000 );
					//连接池配置,ip,端口号,超时时间(ms),密码
//					jedisPool = new JedisPool(poolConfig, "192.168.43.128", 6379, 6000,"123456");
				}
			}
		}
		return jedisPool;
	}


}


再次通过ping测试,使用连接池也成功连接上Redis

这里的close()方法并不会关闭连接,而是将连接归还连接池

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用JedisPool来管理Redis连接池,可以按照以下步骤操作: 1. 首先,确保你已经将Jedis库添加到你的项目中。你可以在Maven或Gradle的配置文件中添加以下依赖: ```xml <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>版本号</version> </dependency> ``` 2. 在代码中导入JedisJedisPool相关的类: ```java import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; ``` 3. 创建JedisPoolConfig对象,并设置连接池的相关属性(如最大连接数、最大空闲连接数等): ```java JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(100); // 设置最大连接数 jedisPoolConfig.setMaxIdle(10); // 设置最大空闲连接数 // 可以根据需要设置其他属性,比如最小空闲连接数、连接超时时间等 ``` 4. 创建JedisPool对象,传入Redis服务器的主机名、端口号、连接超时时间和密码(如果有的话): ```java JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379, 10000, "password"); ``` 注意:如果Redis服务器没有设置密码,可以省略密码参数。 5. 从连接池中获取Jedis对象,并使用Jedis对象进行Redis操作: ```java try (Jedis jedis = jedisPool.getResource()) { // 执行Redis操作,如存储键值对 jedis.set("key", "value"); String value = jedis.get("key"); System.out.println(value); } catch (Exception e) { // 异常处理 } ``` 6. 当不再需要使用Redis连接时,记得将Jedis对象还回连接池: ```java jedis.close(); ``` 这就是使用JedisPool来管理Redis连接池的基本步骤。通过合理配置连接池的属性,可以提高Redis操作的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值