为什么redisTemplate hash value 无法存成json字符串
时间: 2024-05-11 11:20:03
浏览: 235
RedisTemplate 在操作 hash 类型时,会将 value 值序列化成字节数组,而不是直接存储字符串。这意味着如果你要存储一个 JSON 字符串,需要将其先序列化成字节数组,然后再存入 Redis。
你可以使用如下代码将 JSON 字符串序列化为字节数组:
```java
String json = "{\"name\":\"张三\",\"age\":18}";
byte[] jsonBytes = json.getBytes(StandardCharsets.UTF_8);
然后使用 RedisTemplate 的 `opsForHash()` 方法将其存入 Redis:
```java
redisTemplate.opsForHash().put("myhash", "mykey", jsonBytes);
当从 Redis 中读取时,需要将字节数组反序列化成字符串再进行后续操作:
```java
byte[] resultBytes = (byte[]) redisTemplate.opsForHash().get("myhash", "mykey");
String resultJson = new String(resultBytes, StandardCharsets.UTF_8);
```
相关问题
@Bean public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { // 配置redisTemplate RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); // 设置序列化 Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); jackson2JsonRedisSerializer.setObjectMapper(om); // key序列化 redisTemplate.setKeySerializer(new StringRedisSerializer()); // value序列化 redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); // Hash key序列化 redisTemplate.setHashKeySerializer(new StringRedisSerializer()); // Hash value序列化 redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.afterPropertiesSet(); return redisTemplate; }
这段代码是用来配置RedisTemplate的,可以看出该RedisTemplate的key和hashKey序列化采用了StringRedisSerializer,而value和hashValue序列化采用了Jackson2JsonRedi
nodejs 把一个Obj 转成字符串并 计算字符串的 MD5值 用于判断Obj 是否改变完整代码
在Node.js中,你可以使用`JSON.stringify()`将JavaScript对象转换为字符串,并结合`crypto-js`库来计算MD5哈希。首先,你需要安装`crypto-js`库,可以使用npm命令:
```bash
npm install crypto-js
```
最低
0.47元/天
开通会员,查看完整答案
成为会员后, 你将解锁
下载资源随意下
优质VIP博文免费学
优质文库回答免费看
C知道免费提问
付费资源9折优惠