java与redis的整合

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;

}


}

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值