一、 使用Java操作Redis前,请先运行Redis服务与下载Redis驱动,以maven工程为例,引入如下jar
redis.clients
jedis
2.9.0
创建测试类,验证是否成功连接
public static void main(String[] args) {
//设置IP与端口,连接 Redis 服务
Jedis jedis = new Jedis("127.0.0.1",6379);
//设置 密码
jedis.auth("1D9JJ9JIJ0003E4710AC0000596F1A72");
//查看服务是否运行,打出pong表示OK
System.out.println("connection is OK==========>: "+jedis.ping());
String name = jedis.get("admin");
System.out.println("姓名:" + name);
String noticeVal = jedis.hget("notice", "admin");
System.out.println("通知结果:" + noticeVal);
}
执行成功,结果如下
connection is OK==========>: PONG
姓名:null
通知结果:0
二、连接池管理Redis连接,引入redis.properties配置文件
# Redis settings
# 最大闲置数
redis.maxIdle=30
# 最小闲置数
redis.minIdle=10
# 最大连接数
redis.maxTotal=100
# redis服务器的IP地址
redis.url=127.0.0.1
# redis端口
redis.port=6379
# redis密码
redis.password=1D9JJ9JIJ0003E4710AC0000596F1A72
# 超时时间
redis.timeout=2000
编写工具类RedisUtil
package com.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public final class RedisUtil {
private static final Log logger = LogFactory.getLog(RedisUtil.class);
private static JedisPool jedisPool = null;
static {
try {
// 加载配置文件
InputStream in = RedisUtil.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()));// 最大连接数
jedisPool = new JedisPool(poolConfig, pro.getProperty("redis.url"),
Integer.parseInt(pro.getProperty("redis.port")),
Integer.parseInt(pro.getProperty("redis.timeout")),
pro.getProperty("redis.password"));
} catch (Exception e) {
logger.error("异常错误", e);
}
}
public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis resource = jedisPool.getResource();
return resource;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void returnResource(final Jedis jedis) {
if (jedis != null) {
jedis.close();
}
}
}
测试
public static void main(String[] args) {
Jedis jedis = RedisUtil.getJedis();
String result = jedis.set("admin", "管理员");
System.out.println("结果:" + result);
//释放资源
RedisUtil.returnResource(jedis);
}
结果:OK
使用RedisDesktopManager可视化工具查看
其他数据类型如hash(哈希)、list(列表)、set(集合)及zset(有序集合)的增删改查操作和redis原生指令大同小异,抽取为通用工具类。