Redis 设置key/value规则
对于redis的存储key/value键值对,很多人应该都踩过坑,这里总结了一套规则;这篇文章主要讲解定义key/value键值对时的定义规则和注意事项。
1、redis value 值格式
在Java常规开发中,我们需要有面向对象的思想,相对于对象来说,比较常用且能快速转换的格式就是 JSON 了;比较常用的Java处理JSON数据有三个比较流行的类库FastJSON、Gson和Jackson,他们的优劣点这里我就不一一介绍了,本文用阿里的FastJSON。
上面提到了JSON,这是因为在Redis的存储中,我们使用它来存储value值,为什么要这样做呢?主要是因为json格式有如下几种好处:
· 1.标准,主流数据交换格式
· 2.简单,结构清晰,相对于XML来说更加的轻量级,易于解析
· 3.语言无关,任何语言都能轻松搞它
· 4.类型安全,值是有类型的,比如整数、字符串、布尔等
下面我们来看看如何使用json来存储value,代码如下:
/**
- 在redis数据库中插入 key和value 并且设置过期时间
- @param key k
- @param value v
- @param exp 过期时间 s
- @return boolean
*/
@Override
public boolean set(String key, V value, int exp) {
Jedis jedis = null;
// 将 value 转换成 json 对象
// String jKey = JSON.toJSONString(key);
String jValue = JSON.toJSONString(value);
// 操作是否成功
boolean isSucess = true;
if (StringUtils.isEmpty(key)) {
LOG.info(“key is empty”);
return false;
}
try {
// 获取客户端对象
jedis = redisCache.getResource();
// 执行插入
jedis.setex(key, exp, jValue);
} catch (Exception e) {
LOG.info(“client can’t connect server”);
isSucess = false;
if (null != jedis) {