这是一个简单spring和redis整合的小案例,没有用maven,只需将下面几个包和spring的包导入即可使用
下面先配置spring.xml,加上这段代码即可
spring.xml
<!-- 在实例化时执行init方法,进行初始化 -->
<bean id="jedisHelper" class="com.test.redis.JedisHelper" init-method="init" >
<!-- ip地址 -->
<property name="hostName" value="192.168.18.128" />
<!-- 端口号 -->
<property name="port" value="6379" />
<!-- 密码 -->
<property name="password" value="wanglei" />
<!-- 过期时间 -->
<property name="timeout" value="5000" />
</bean>
下面这是自己写的类,里面封装了set、get、del方法,还有一些连接池的属性配置
JedisHelper.java
package com.test.redis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisHelper {
private String hostName;
private String password;
private int port;
private int timeout;
private boolean enable = true;
private static JedisPool jedisPool = null;
public void init() {
JedisPoolConfig config = new JedisPoolConfig();
//控制一个pool最多有多少个状态为idle(空闲的)的jedis实例
config.setMaxIdle(200);
//在borrow(验证)一个jedis实例时,是否提前进行validate操作
config.setTestOnBorrow(false);
//在return给pool时,是否提前进行validate操作
config.setTestOnReturn(false);
//表示idle object evitor两次扫描之间要sleep的毫秒数
config.setTimeBetweenEvictionRunsMillis(6000);
//表示一个对象至少停留在idle状态的最短时间,然后才能被idle object evitor扫描并驱逐;这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义
config.setMinEvictableIdleTimeMillis(120000);
//表示idle object evitor每次扫描的最多的对象数
config.setNumTestsPerEvictionRun(-1);
jedisPool = new JedisPool(config, hostName, port, timeout, password);
}
public boolean isEnable() {
return enable;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
public String getHostName() {
return hostName;
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public int getTimeout() {
return timeout;
}
public void setTimeout(int timeout) {
this.timeout = timeout;
}
//取出数据
public String get(String key) {
if (key==null) return null;
String value = null;
try {
Jedis jedis = jedisPool.getResource();
value = jedis.get(key);
jedis.close();
} catch (Exception e) {
e.printStackTrace();
}
return value;
}
//存入数据
public String set(String key, String value) {
if (key==null) return null;
if (value==null) return null;
if (key.indexOf("'")>=0) return null;
String status = null;
try {
Jedis jedis = jedisPool.getResource();
status = jedis.set(key, value);
jedis.close();
} catch (Exception e) {
e.printStackTrace();
}
return status;
}
//删除
public Long del(String key) {
Long keyRemovedCount=-1L;
if (key==null) return null;
try {
Jedis jedis = jedisPool.getResource();
keyRemovedCount = jedis.del(key);
jedis.close();
} catch (Exception e) {
e.printStackTrace();
}
return keyRemovedCount;
}
}
现在该测试一下了
package com.test.redis;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestSpringRedisDemo1 {
public static void main(String[] args) {
//这个方法是为了能在main方法里使用spring容器里的东西
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring.xml");
JedisHelper jedisHelper =(JedisHelper) ac.getBean("jedisHelper");
String key = "name";
String value = "Sandy";
System.out.println(jedisHelper.set(key, value));
System.out.println(jedisHelper.get(key));
System.out.println(jedisHelper.del(key));
}
}
最后的结果
ok 代表添加成功
Sandy 表示获取值成功
1 表示删除成功
希望能给大家带来帮助!!