FastJson转化
本篇主要讲将一系列东西转化为json送往redis
redis是一个key-value。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。(来自百度百科)
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets)与范围查询, bitmaps, hyperloglogs和 地理空间(geospatial)索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions)和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。(来自redis中文官方网站)
本篇不再过多的讲述springboot如何整合redis
借鉴博文 之前在学习redis的时候借鉴了这位兄弟的博客,帮我搭建起了redis与springboot整合,我们来讲讲如何实现fastJson
先在pom文件里导包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.31</version>
</dependency>
然后在你的controller层里引入JSONObject
private JSONObject json=new JSONObject();
测试一下
在我的key1存了value
然后简单实现一下
public String getKey(){
String key1="key1";
String getString=redisService.get(key1);
return getString;
}
这里看出来了redisService里面的方法都需要传字符串进去
我们直接放大照,序列化一个list进去
PersonDO personDO=new PersonDO();
personDO.setKey1("sdsa");
personDO.setTel(12312313);
PersonDO personDO1=new PersonDO();
personDO1.setKey1("KKK");
personDO1.setTel(12312313);
List<PersonDO> personDOList=new ArrayList<>();
personDOList.add(personDO);
personDOList.add(personDO1);
redisService.set("kkk12",json.toJSONString(personDOList));
看了下数据库成功了
这里就调用了将list转化为JSON字符串的方法[ toJSONString() ]
再来个大招
整个map进去
Map<String,Integer> map=new HashMap<>();
map.put("myphone",123123213);
map.put("sda",17723);
redisService.set("mymap",json.toJSONString(map));
也成功了,对象更是不用测试了
这里再提供一下从json转为对象,list,与map的方法
这样子就可以重新获取list了
List<PersonDO> list=json.parseArray(redisService.get("kkk12"),PersonDO.class);
这里对应的map反序列化
JSONObject jsonObject=json.parseObject(redisService.get("mymap"));
Map<String,Object> map1 = (Map<String,Object>)jsonObject;
Object o=map1.get("myphone");
在这里获取被序列化进去的对象
String result=redisService.get("my");
PersonDO person = JSON.parseObject(result,PersonDO.class);
结果可以从postman里面获取到对象