您的位置:首页 > 数据库 > Redis

java 简单使用redis

2016-09-26 14:53 281 查看
1.配置文件

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="50" />
<property name="maxIdle" value="8" />
<property name="maxWaitMillis" value="1000" />
<property name="testOnBorrow" value="true"/>
<property name="testOnReturn" value="true"/>
</bean>

<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg index="0" ref="jedisPoolConfig" />
<constructor-arg index="1" value="192.168.1.76" type="java.lang.String"/>
<constructor-arg index="2" value="6379"  type="int"/>
</bean>


2.复杂对象,通过序列化成进进制存储到redis中

@Repository("RedisCacheImpl")
public class RedisCacheImpl implements IRedisCache {

private static final Logger logger = LoggerFactory.getLogger(RedisCacheImpl.class);

@Autowired(required = false)
protected JedisPool pool;

@Override
public void put(String key, Object value) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.set(key.getBytes(), SerializeUtil.serialize(value));
} catch (Exception e) {
logger.error("redis error:", e);
} finally {
if (jedis != null) {
jedis.close();
}
}
}

@SuppressWarnings({"unchecked"})
@Override
public <T> T get(String key) {
Jedis jedis = null;
try {
jedis = pool.getResource();
byte[] value = jedis.get(key.getBytes());
if (value == null) {
return null;
}
return (T) SerializeUtil.unSerialize(value);
} catch (Exception e) {
logger.error("redis error:", e);
return null;
} finally {
if (jedis != null) {
jedis.close();
}
}
}

@SuppressWarnings({"unchecked"})
@Override
public boolean del(String key) {
Jedis jedis = null;
try {
jedis = pool.getResource();
return jedis.del(key.getBytes()) > 0;
} catch (Exception e) {
logger.error("redis error:", e);
return false;
} finally {
if (jedis != null) {
jedis.close();
}
}
}
}


3.序列化类

public class SerializeUtil {

private static final Logger logger = LoggerFactory.getLogger(SerializeUtil.class);

public static byte[] serialize(Object object) {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
// 序列化
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
return bytes;
} catch (Exception e) {
logger.error("serializer error:", e);
}
return null;
}

public static Object unSerialize(byte[] bytes) {
ByteArrayInputStream bais = null;
try {
// 反序列化
bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
} catch (Exception e) {
logger.error("serializer error:", e);
}
return null;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: