Java 操作Redis
程序员文章站
2022-03-10 18:37:56
一、 使用Java操作Redis前,请先运行Redis服务与下载Redis驱动,以maven工程为例,引入如下jar redis.clients jedis 2.9.0 ......
一、 使用java操作redis前,请先运行redis服务与下载redis驱动,以maven工程为例,引入如下jar
<dependency>
<groupid>redis.clients</groupid>
<artifactid>jedis</artifactid>
<version>2.9.0</version>
</dependency>
创建测试类,验证是否成功连接
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;
/**
* redisutil工具类
*
* @author administrator
*
*/
public final class redisutil {
private static final log logger = logfactory.getlog(redisutil.class);
private static jedispool jedispool = null;
/**
* 初始化redis连接池
*/
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);
}
}
/**
* 获取jedis实例
*
* @return
*/
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;
}
}
/**
* 释放jedis资源
*
* @param jedis
*/
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原生指令大同小异,抽取为通用工具类。
上一篇: mysqldump备份指定的数据