当前位置: 首页 > wzjs >正文

小程序跳转到网站网站建设的公司名称

小程序跳转到网站,网站建设的公司名称,网站建设所需人力,潍坊网络营销招聘在使用 Spring Data Redis 时,我们通常会设置 RedisTemplate 的序列化方式。其中,两个很容易混淆的配置是: KeySerializerHashKeySerializer 这两个序列化器看起来名字相似,但作用却完全不同。本文将从实际使用场景出发&#xf…

在使用 Spring Data Redis 时,我们通常会设置 RedisTemplate 的序列化方式。其中,两个很容易混淆的配置是:

  • KeySerializer
  • HashKeySerializer

这两个序列化器看起来名字相似,但作用却完全不同。本文将从实际使用场景出发,带你彻底搞清楚这两个参数的含义与使用方式。


📌 一句话概括区别

名称应用场景用途说明
KeySerializer普通 K/V 结构的 key,如 set("k", "v")序列化最外层 Redis 键(key)
HashKeySerializerRedis Hash 结构中的字段名,如 hset("hash", "field", "value")序列化 Hash 内部的字段名(field)

✅ 示例解释

下面我们用两个典型的 Redis 数据结构来展示它们分别在什么场景下生效。

1. 普通 Key-Value 操作

redisTemplate.opsForValue().set("user:1", "zhangsan");

在这个操作中:

元素对应序列化器
"user:1"KeySerializer
"zhangsan"ValueSerializer

2. Hash 类型操作

redisTemplate.opsForHash().put("user:1", "name", "zhangsan");

在这个操作中:

元素对应序列化器
"user:1"KeySerializer
"name"HashKeySerializer
"zhangsan"HashValueSerializer

❗为什么要特别设置 HashKeySerializer?

如果不手动配置 HashKeySerializer,RedisTemplate 会默认使用 JdkSerializationRedisSerializer【详情可见笔者的另一篇博客Java JDK 默认序列化问题详解与解决方案】,这会导致 Redis 中的字段名变成不可读的二进制乱码

127.0.0.1:6379> hgetall user:1
1) "\xac\xed\x00..."  <-- 乱码
2) "zhangsan"

配置后变为可读字符串:

127.0.0.1:6379> hgetall user:1
1) "name"
2) "zhangsan"

✅ 正确配置方式

推荐配置 RedisTemplate 的四种序列化方式如下:

@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(factory);// key 使用字符串序列化template.setKeySerializer(new StringRedisSerializer());template.setHashKeySerializer(new StringRedisSerializer());// value 使用 JSON 序列化(可选 Jackson/FastJSON2)template.setValueSerializer(new GenericJackson2JsonRedisSerializer());template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());template.afterPropertiesSet();return template;}
}

📌 总结对比表

序列化器名称应用位置是否必须设置推荐值
KeySerializerRedis 的最外层 key,如 "user:1"✅ 是StringRedisSerializer
ValueSerializer普通键值结构的 value,如 "zhangsan"✅ 是JSON 序列化器
HashKeySerializerHash 内字段名(field),如 "name"✅ 是StringRedisSerializer
HashValueSerializerHash 内字段值,如 "zhangsan"✅ 是JSON 序列化器

✅ 使用建议

  • 四个序列化器都要手动配置,不要依赖默认值
  • 建议统一使用 StringRedisSerializer + GenericJackson2JsonRedisSerializer,可读性强、兼容性好

✍写在最后

Redis 是一个轻量、高性能、跨语言的缓存中间件。在 Java 项目中合理配置 RedisTemplate 的序列化方式,不仅能提升可读性和调试体验,也能避免数据不兼容和乱码问题。希望本文能帮助你从源头上理解 KeySerializerHashKeySerializer 的本质区别。

http://www.dtcms.com/wzjs/576158.html

相关文章:

  • 新手怎么做网站郑州网站制作咨询
  • 辽宁省交通建设投资集团官方网站wordpress怎么修改模板文件
  • 广州手机端网站制作泉州网站设计理念培训
  • 网站建设风格总结电商网站建设网络公司
  • 高端网站建设公司兴田德润在那里wordpress 网页路径
  • 免费的网站管理系统wordpress 中文模版
  • 旅游网站系统哪个好网站统计代码怎么弄
  • 在青岛做阿里巴巴网站找谁国人原创wordpress主题
  • 广州市住房城乡建设部门户网站网站建设规划ppt模板
  • 网站设计一般包括什么深圳网站开发招聘
  • php网站开发 vip一个网站交互怎么做
  • wordpress 导入网站怎么制作网站设计图片
  • 免费的个人网站怎么做电力建设期刊 网站无法访问
  • 网站建设维护是做什么会计科目世界500强企业排行榜中国企业
  • 计算机论文seo博客是什么意思
  • 梦幻西游官方网站怎样删除网站
  • 开发网站现实网络传输失败企业网站搭建及优化
  • 成品网站nike源码1688免费永久免费建站网站
  • 免费建立个人网站凡科wordpress升级文章编辑器
  • 建设一个网站思路wordpress 摄影国内
  • 有做网站动态效果软件站长之家排行榜
  • 推广员网站怎么做珲春市建设局网站是多少
  • 27寸显示器网站建设wordpress视频模板下载
  • 东莞高端网站建设收费标准河南省住房和城乡建设厅官方网站
  • 人员调动在网站上怎么做南昌房地产网站建设
  • 合理规划网站怎么在企业站建立网站吗
  • 一般建站公司用什么cmswordpress建网站的优点
  • 企业网站建设推广含义企业网站优化甲薇g71679做同等效果下拉词
  • 要如何关闭公司网站 撤销备案网站 留言板 制作
  • 如何向alexa提交网站校园二手交易网站值得做吗