简单的redis与spring整合

这是一个简单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    表示删除成功




希望能给大家带来帮助!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值