前言
实际开发中,我们需要用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();
}
}
}
运行测试连接
表示成功