ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis存储多了引号

2020-05-11 10:03:36  阅读:1067  来源: 互联网

标签:存储 php Redis 引号 redis 问题 stringRedisSerializer template 序列化


今天接到一个需求,php直接往redis队列里面加数据,在redis出问题时,php会报错,导致整个yui框架的瘫痪,由于公司企业产品是base在php下面的,这个问题就是一个生产问题。

解决办法为:用java去实现往redis里加数据的部分,以rest api的形式暴露出来。(解决方案有很多种,只是最后采取了这种解决方案)

于是我就去写这么一个简单的接口,由于之前所有的redis初始化设置都是我基本框架配置好的,所以,我只是改了一个redis链接,就开始实现了,我看到的之前的数据是这样的。

本着不影响他人的想法,我的目标就是最终插入数据和这条一样。

 

当我很快写完测试代码,一调试。

 

 有两点区别:

1.外层多了一层引号。

2.内部的引号前多了斜杠。

首先自己YY了一下,好像我很多时候在前端js去处理时,需要这样的数据。 于是去找php后端拿代码,看了一下代码,和我没啥区别,也是把一个json数据,toJSONStr之后,放到redis.

于是乎,去百度搜索了一下,这就是开始了一个更大的坑,百度会告诉你,类型的问题,需要把JSONObject转成Object再存储,还有的说,fastjson本身有问题。

于是开始了一上午的修改代码,调试,调试。

最后发现是序列化的问题。

在redisConfig里面,有这样的代码。

template.setKeySerializer(stringRedisSerializer);
// hash的key也采用String的序列化方式
template.setHashKeySerializer(stringRedisSerializer);
// value序列化方式采用jackson
//template.setValueSerializer(jackson2JsonRedisSerializer);
template.setValueSerializer(stringRedisSerializer);
之前在序列化时,是jackson2JsonRedisSerializer,改成stringRedisSerializer.
那么问题就来了,在redisConfig里并没有指定反序列化,所以这两种情况取值是否会出问题呢?
直接上结果:
取值完成没有影响。把这个问题记录一下,以免以后发现查证。

 

标签:存储,php,Redis,引号,redis,问题,stringRedisSerializer,template,序列化
来源: https://www.cnblogs.com/hellocz/p/12867326.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有