Redis设置Key/value的规则定义和注意事项(附工具类)

 对于redis的存储key/value键值对,经过多次踩坑之后,我们总结了一套规则;这篇文章主要讲解定义key/value键值对时的定义规则和注意事项。


前面一篇文章讲了如何定义Redis的客户端和Dubbo集成存储器;当我们真正开始开发的时候,就会突然发现,有点不知道如何去定义Redis的Key和Value值格式,不要着急,马上我们就可以明白如何去定义和使用,下面我们开始讲解如何定义。

Spring+Dubbo集成Redis的两种解决方案

1、redis value 值格式

在Java常规开发中,我们需要有面向对象的思想,相对于对象来说,比较常用且能快速转换的格式就是 JSON 了;比较常用的Java处理JSON数据有三个比较流行的类库FastJSONGsonJackson,他们的优劣点这里我就不一一介绍了,本文用阿里的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) {             // 释放jedis对象             redisCache.brokenResource(jedis);         }         return false;     } finally {         if (isSucess) {             // 返还连接池             redisCache.returnResource(jedis);         }     }     return true; }

代码中redis value在存储前我们对其做了一次转换,将对象V转换为json对象后存储;下面我们来看看在redis中value值的格式:

zhangsan

上面我们可以看到在redis可视化工具rdm(Redis Desktop Manager)中,key键对应的value用json非常清晰的显示出来了,非常方便我们查阅redis中存储的数据。

不知道大家注意到没有,上面的代码中有一行我是注释掉了,代码如下:

// String jKey = JSON.toJSONString(key);

这一行的意思是将key键也json化,不是说json非常友好吗?那为什么要注释这一行呢?下面为大家解释为何要这样做。

首先,使用json格式的数据都会变成一个josn格式的String字符串,比如 "zhangsan" ,当这个字符串作为key存储时,默认会带有json的特性,那就是双引号 "" 也会带入到redis的key设置中,所以在rdm中我们看到的key值都会默认带上 "" ,这样着实不是非常的美观,特别是对于我们的复杂业务而言,后面会给大家讲如何在rdm中使用key值规则定义业务线文件夹。

json zhangsan

2、redis key 键格式

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信