redis之路(二):使用Jedis连接Redis

前言

实际开发中,我们需要用Redis的连接工具连接Redis然后操作Redis,

对于主流语言,Redis都提供了对应的客户端;可以到redis官网查看对应的客户端

点击Clients
在这里插入图片描述
可以看到都对那些语言提供了客户端,点击Java,查看对java语言提供的客户端

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

第一新建maven项目

新建一个新的maven项目
在这里插入图片描述

第二添加Jedis依赖

在pom文件添加maven依赖

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

出现这两个jar包说明依赖添加成功
在这里插入图片描述

第三Redis后台运行

查看redis是否运行了

ps -ef | grep -i redis

在这里插入图片描述
从图上可以看出,redis-server 目前正在6379 端口运行

如果没有运行,开启后台运行并配置密码

bin/redis-server redis.conf

bin/redis-cli

config set requirepass 123456

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

第四开放6379端口

package com.honger1234;

import redis.clients.jedis.Jedis;

public class JedisTest {
	public static void main(String[] args) {
		Jedis jedis = new Jedis("172.16.150.128", 6379);
		jedis.auth("123456");
		jedis.set("name", "honger1234");
		String value = jedis.get("name");
		System.out.println(value);
		jedis.close();
	}
}

运行测试代码,报错,连接超时
在这里插入图片描述
开放6379端口,并重启防火墙

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

firewall-cmd --reload

第五修改连接绑定

运行测试代码,还是报连接超时错误

这是因为redis的配置文件中绑定了只能由本地连接

修改启动的配置文件

vi /usr/local/redis/redis.conf

在这里插入图片描述
把图中的代码前面加上#注释掉,保存退出

第六设置Redis密码

运行测试代码,还是报错,这次报的是保护模式错误

这个是因为远程连接redis redis自我保护 拒绝访问;

这里有两种解决方法,一种是设置redis密码(推荐使用),一种是去掉redis的自我保护(不推荐)

1.设置密码

进入redis客户端

/usr/local/redis/bin/redis-cli

设置密码

config set requirepass 123456

2.去掉redis的自我保护

修改redis的配置文件

vi /usr/local/redis/redis.conf

在这里插入图片描述
将图中的yes改为no,保存退出

运行测试代码
在这里插入图片描述
表示连接成功

第七使用链接池

改用连接池连接

package com.honger1234;

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

public class JedisPoolTest {
	public static void main(String[] args) {
		JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
		jedisPoolConfig.setMaxTotal(100);// 设置最大连接数
		jedisPoolConfig.setMaxIdle(10);// 设置最大空闲数

		JedisPool jedisPool = null;
		Jedis jedis = null;
		try {
			jedisPool = new JedisPool(jedisPoolConfig, "172.16.150.128", 6379);
			jedis = jedisPool.getResource();
			jedis.auth("123456");
			jedis.set("name", "honger1234");
			String value = jedis.get("name");
			System.out.println(value);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			jedis.close();
			jedisPool.close();
		}
	}
}

运行测试连接
在这里插入图片描述
表示成功

猜你喜欢

转载自blog.csdn.net/qq_38738510/article/details/104036811