1、jar包 jedis-2.7.2.jar
2、
import java.util.Map;
/**
* redis操作接口;
*
*
*/
public interface RedisService {
public Map<String,String> getValue(String keys);
public boolean put(String key, String value);
public boolean del(String keys);
public boolean add(String key, String value);
public boolean dell(String key, String value);
public Map<String, String> getMapValue(String key);
boolean hdel(String key, String field);
public String getMapValue(String key,String field);
public boolean hSet(String key,String field,String value);
public String get(String key);
public boolean setex(String key, String timeout, String code);
boolean setex(String key, Integer timeout, String value);
}
======================================
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Service;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import com.zhongbo.framework.common.annotation.config.Config;
import com.zhongbo.framework.redis.RedisService;
@Service("redisService")
public class RedisServiceImpl implements RedisService,InitializingBean{
private static final Logger log = LogManager
.getLogger(RedisServiceImpl.class);
@Config(value="redis.url")
private String redisUrl;//redis地址
//redis.url=10.10.100.83:12361
private JedisCluster jedisCluster;
@Override
public Map<String, String> getValue(String keys) {
if (null == keys) {
log.error("There are no keys param");
return new HashMap<String, String>();
}
log.info("Get request : " + keys);
String[] mykeys = keys.split("[|]");
Map<String, String> returnValue = new HashMap<String, String>();
try {
for (String mykey : mykeys) {
String myValue = jedisCluster.get(mykey);
if (myValue != null) {
returnValue.put(mykey, myValue);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return returnValue;
}
@Override
public boolean put(String key, String value) {
String[] valueAndExpiredTime = value.split(":::");
try {
if (valueAndExpiredTime.length == 2) {
jedisCluster.setex(key,
Integer.parseInt(valueAndExpiredTime[1]),
valueAndExpiredTime[0]);
} else {
jedisCluster.set(key, value);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
@Override
public boolean del(String keys) {
if (null == keys) {
log.error("There are no keys param");
return true;
}
String[] mykeys = keys.split("[|]");
try {
for (String mykey : mykeys) {
jedisCluster.del(mykey);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
@Override
public void afterPropertiesSet() throws Exception {
init();
}
private void init() {
Set<HostAndPort> set = new HashSet<HostAndPort>();
String[] ipPort = redisUrl.split(":");
String ip = ipPort[0];
int port = Integer.parseInt(ipPort[1]);
HostAndPort hostAndPort = new HostAndPort(ip, port);
set.add(hostAndPort);
log.info("add info," + " ip:" + ip + ", port" + port);
jedisCluster = new JedisCluster(set);
}
@Override
public boolean add(String key, String value) {
if (null == key) {
log.error("There are no keys param");
return true;
}
try {
long jed = jedisCluster.sadd(key, value);
if(jed > 0){
return true;
}
return false;
} catch (Exception e) {
log.info(e);
e.printStackTrace();
return false;
}
}
@Override
public boolean dell(String key, String value) {
if (null == key) {
log.error("There are no keys param");
return true;
}
try {
long jed = jedisCluster.srem(key, value);
if(jed > 0){
return true;
}
return false;
} catch (Exception e) {
log.info(e);
e.printStackTrace();
return false;
}
}
@Override
public Map<String, String> getMapValue(String key) {
if (null == key)
{
log.error("There are no keys param");
return new HashMap<String, String>();
}
log.info("Get request : " + key);
try{
return jedisCluster.hgetAll(key);
}catch (Exception e) {
e.printStackTrace();
return new HashMap<String, String>();
}
}
public String getMapValue(String key,String field) {
if (null == key)
{
log.error("There are no keys param");
return "";
}
try{
return jedisCluster.hget(key, field);
}catch (Exception e) {
e.printStackTrace();
return "";
}
}
@Override
public boolean hdel(String key,String field) {
if (null == key || "" == key || null == field ||"" == field) {
log.error("There are no keys param");
return true;
}
try {
Long t = jedisCluster.hdel(key , field);
if(t == 1){
return true;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return false;
}
@Override
public boolean hSet(String key, String field, String value) {
try {
Long check = jedisCluster.hset(key, field, value);
if(0 != check){
return false;
}
return true;
} catch (Exception e) {
log.error(e);
return false;
}
}
@Override
public String get(String key) {
// TODO Auto-generated method stub
try {
log.info("get key: " + key);
String value = jedisCluster.get(key);
if(value == null ){
return null;
}
return value;
}catch(Exception e) {
log.error(e);
return null;
}
}
@Override
public boolean setex(String key, String timeout, String value) {
if (null == key) {
log.error("There are no keys param");
return true;
}
try {
jedisCluster.setex(key,Integer.parseInt(timeout), value);
return true;
} catch (Exception e) {
log.info(e);
e.printStackTrace();
return false;
}
}
@Override
public boolean setex(String key, Integer timeout, String value) {
if (null == key) {
log.error("There are no keys param");
return true;
}
try {
jedisCluster.setex(key,timeout, value);
return true;
} catch (Exception e) {
log.info(e);
e.printStackTrace();
return false;
}
}
}