redis需要的jar包下载(redis安装):https://pan.baidu.com/s/1t9eSNoSX-Oa-T0aDS-ug8Q 密码:38n1
参考:https://blog.csdn.net/houyanhua1/article/details/83305819
Test.java:
package com.xxx.jedis;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class Test {
//通过java程序访问redis
@Test
//获得单一的jedis对象操作redis
public void test1(){
//1、获得连接对象
Jedis jedis = new Jedis("127.0.0.1", 6379);
//2、获得数据
String username = jedis.get("username");
System.out.println(username);
//3、存储
jedis.set("addr", "北京");
System.out.println(jedis.get("addr"));
}
//通过jedis的pool获得jedis连接对象
@Test
public void test2(){
//0、创建池子的配置对象
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(30);//最大闲置个数
poolConfig.setMinIdle(10);//最小闲置个数
poolConfig.setMaxTotal(50);//最大连接数
//1、创建一个redis的连接池
JedisPool pool = new JedisPool(poolConfig, "127.0.0.1", 6379);
//2、从池子中获取redis的连接资源
Jedis jedis = pool.getResource();
//3、操作redis
jedis.set("xxx","yyyy");
System.out.println(jedis.get("xxx"));
//4、关闭资源
jedis.close();
pool.close();
}
}
JedisPoolUtils.java(redis连接池工具类):
package com.xxx.jedis;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisPoolUtils {
private static JedisPool pool = null;
static{
//加载配置文件
InputStream in = JedisPoolUtils.class.getClassLoader().getResourceAsStream("redis.properties");
Properties pro = new Properties();
try {
pro.load(in);
} catch (IOException e) {
e.printStackTrace();
}
//获得池子对象
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(Integer.parseInt(pro.get("redis.maxIdle").toString()));//最大闲置个数
poolConfig.setMinIdle(Integer.parseInt(pro.get("redis.minIdle").toString()));//最小闲置个数
poolConfig.setMaxTotal(Integer.parseInt(pro.get("redis.maxTotal").toString()));//最大连接数
pool = new JedisPool(poolConfig,pro.getProperty("redis.url") , Integer.parseInt(pro.get("redis.port").toString()));
}
//获得jedis资源的方法
public static Jedis getJedis(){
return pool.getResource();
}
}
src/redis.properties(redis配置文件):
redis.maxIdle=30
redis.minIdle=10
redis.maxTotal=100
redis.url=127.0.0.1
redis.port=6379
Test.java(redis集群测试类):
package cn.e3mall.jedis;
import java.util.HashSet;
import java.util.Set;
import org.junit.Test;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPool;
public class Test {
@Test
//redis
public void testJedis() throws Exception {
//创建一个连接Jedis对象,参数:host、port
Jedis jedis = new Jedis("192.168.25.162", 6379);
//直接使用jedis操作redis。所有jedis的命令都对应一个方法。
jedis.set("test123", "my first jedis test");
String string = jedis.get("test123");
System.out.println(string);
//关闭连接
jedis.close();
}
@Test
//redis连接池 JedisPool
public void testJedisPool() throws Exception {
//创建一个连接池对象,两个参数host、port
JedisPool jedisPool = new JedisPool("192.168.25.162", 6379);
//从连接池获得一个连接,就是一个jedis对象。
Jedis jedis = jedisPool.getResource();
//使用jedis操作redis
String string = jedis.get("test123");
System.out.println(string);
//关闭连接,每次使用完毕后关闭连接。连接池回收资源。
jedis.close();
//关闭连接池。
jedisPool.close();
}
@Test
//redis集群 JedisCluster
public void testJedisCluster() throws Exception {
//创建一个JedisCluster对象(自带连接池)。有一个参数nodes是一个set类型。set中包含若干个HostAndPort对象。
Set<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("192.168.25.162", 7001));
nodes.add(new HostAndPort("192.168.25.162", 7002));
nodes.add(new HostAndPort("192.168.25.162", 7003));
nodes.add(new HostAndPort("192.168.25.162", 7004));
nodes.add(new HostAndPort("192.168.25.162", 7005));
nodes.add(new HostAndPort("192.168.25.162", 7006));
JedisCluster jedisCluster = new JedisCluster(nodes);
//直接使用JedisCluster对象操作redis。
jedisCluster.set("test", "123");
String string = jedisCluster.get("test");
System.out.println(string);
//关闭JedisCluster对象
jedisCluster.close();
}
}