package com.test.redis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Protocol;
public class BaseRedisController {
protected JedisPool pool;
public void start() {
String host = "127.0.0.1";
int port = 6379;
try {
int maxActive = 20;
int maxIdle = 10;
int maxWait = 60000;
int minIdle = 5;
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(maxActive);
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMaxWaitMillis(maxWait);
jedisPoolConfig.setMinIdle(minIdle);
jedisPoolConfig.setNumTestsPerEvictionRun(2);
jedisPoolConfig.setTestOnBorrow(false);
jedisPoolConfig.setTestOnReturn(false);
jedisPoolConfig.setTestWhileIdle(true);
// pool = new JedisPool(jedisPoolConfig, host, port);
if(pool == null){
pool = new JedisPool(jedisPoolConfig, host, port, Protocol.DEFAULT_TIMEOUT, null, 0);
}
} catch (Exception e1) {
e1.printStackTrace();
}
Jedis jedis = pool.getResource();
try {
if (!jedis.isConnected()) {
throw new Exception("Cann't connect to User Redis Server!");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
pool.returnResource(jedis);
}
}
public void stop() {
pool.destroy();
}
}
package com.test.redis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.exceptions.JedisException;
public class FirstRedisManager extends BaseRedisController{
private static final String SESSION_PREFIX = "test-";
private static final int SESSION_TIMEOUT_IN_SECONDS = 24 * 60 * 60;
public void set(String mobile, String createTime, String num) {
Jedis jedis = null;
try {
jedis = pool.getResource();
String key = SESSION_PREFIX + mobile;
jedis.hset(key, createTime, num);
jedis.expire(key, SESSION_TIMEOUT_IN_SECONDS);
pool.returnResource(jedis);
} catch (Exception e) {
if (jedis != null) {
pool.returnBrokenResource(jedis);
}
throw new JedisException(e);
}
}
public void set(String key, String value){
Jedis jedis = null;
try {
jedis = pool.getResource();
key = SESSION_PREFIX + key;
jedis.set(key, value);
jedis.expire(key, SESSION_TIMEOUT_IN_SECONDS);
pool.returnResource(jedis);
} catch (Exception e) {
if(jedis != null){
pool.returnBrokenResource(jedis);
}
e.printStackTrace();
}
}
public String get(String mobile, String createTime){
Jedis jedis = null;
String result = null;
try {
jedis = pool.getResource();
String key = SESSION_PREFIX + mobile;
result = jedis.hget(key, createTime);
pool.returnResource(jedis);
} catch (Exception e) {
if (jedis != null) {
pool.returnBrokenResource(jedis);
}
e.printStackTrace();
}
return result;
}
public void delete(String mobile, String createTime) {
Jedis jedis = null;
try {
jedis = pool.getResource();
mobile = SESSION_PREFIX + mobile;
jedis.hdel(mobile, createTime);
pool.returnResource(jedis);
} catch (Exception e) {
if (jedis != null) {
pool.returnBrokenResource(jedis);
}
throw new JedisException(e);
}
}
public static void main(String[] args) {
FirstRedisManager firstRedisManager = new FirstRedisManager();
firstRedisManager.start();
String mobile = "123456789";
String createTime = "2015-5-22";
String num = "HelloWorld!";
firstRedisManager.set(mobile, createTime, num);
System.out.println("redis get String ---->" + firstRedisManager.get(mobile, createTime));
firstRedisManager.delete(mobile, createTime);
System.out.println("redis get String ---->" + firstRedisManager.get(mobile, createTime));
}
}