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

十大素材网站黄冈市建设局官方网站

十大素材网站,黄冈市建设局官方网站,网络企业是什么,做网站和优化共多少钱RedisTemplate 使用 pipeline 时需要注意的问题 RedisTemplate 使用 pipeline 进行批量 set 时#xff0c;需要把 key 和 value 都转为字节 1. 直接使用 getBytes() 转为字节#xff0c;在读取数据时#xff0c;会抛出以下序列化异常 //错误代码 protected void process(…RedisTemplate 使用 pipeline 时需要注意的问题 RedisTemplate 使用 pipeline 进行批量 set 时需要把 key 和 value 都转为字节 1. 直接使用 getBytes() 转为字节在读取数据时会抛出以下序列化异常 //错误代码 protected void process(ReconRedisContext reconRedisContext) {String key this.getLockKey(reconRedisContext);Pagination pagination this.queryReconData(reconRedisContext);if (ObjectUtils.isNotEmpty(pagination) CollectionUtils.isNotEmpty(pagination.getList())) {List? resList pagination.getList();redisTemplate.executePipelined(new RedisCallbackSet?() {Overridepublic Set? doInRedis(RedisConnection connection) throws DataAccessException {resList.stream().forEach(value - {connection.sAdd(key.getBytes(StandardCharsets.UTF_8), value.toString().getBytes(StandardCharsets.UTF_8));});return null;}});}}// 抛出序列化异常 org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Unrecognized token value: was expecting (JSON String, Number, Array, Object or token null, true or false)2. 需要使用 RedisTemplate 已经设置的 Serializer 将key 和 value 序列化成byte数据代码如下 protected void process(ReconRedisContext reconRedisContext) {RedisSerializer keySerializer redisTemplate.getKeySerializer();RedisSerializer valueSerializer redisTemplate.getValueSerializer();String key this.getLockKey(reconRedisContext);Pagination pagination this.queryReconData(reconRedisContext);if (ObjectUtils.isNotEmpty(pagination) CollectionUtils.isNotEmpty(pagination.getList())) {List? resList pagination.getList();redisTemplate.executePipelined(new RedisCallbackSet?() {Overridepublic Set? doInRedis(RedisConnection connection) throws DataAccessException {resList.stream().forEach(value - {connection.sAdd(keySerializer.serialize(key), valueSerializer.serialize(value));});return null;}});}}3. 异常原因 // RedisTemplate 默认使用 DefaultSetOperations 存放数据的源码如下 public Long add(K key, V... values) {byte[] rawKey rawKey(key);byte[][] rawValues rawValues((Object[]) values);return execute(connection - connection.sAdd(rawKey, rawValues)); }byte[] rawKey(Object key) {Assert.notNull(key, non null key required);if (keySerializer() null key instanceof byte[]) {return (byte[]) key;}return keySerializer().serialize(key); }byte[] rawValue(Object value) {if (valueSerializer() null value instanceof byte[]) {return (byte[]) value;}return valueSerializer().serialize(value); }看源码RedisTemplate 也是把 key 和 value 都转为了字节但是使用了我们自己设置的 Serializer 所以我们在使用 pipeline 时也需要使用我们设置的 Serializer。 注意根据源码来看Redis 的其他数据结构使用 pipeline 时也会存在序列化的问题在代码编写的时候需要注意。 源自
http://www.hkea.cn/news/14406341/

相关文章:

  • 企业网站的建设与维护网站建设公司做销售好不好
  • 曲阜市网站建设wordpress修改code标签
  • 做app一定要做网站吗企业网站制作建设的框架有哪几种
  • 合肥网站建设是什么意思网站设计师培训
  • 网站建设公司如何运营新手做网站视频
  • 网站开发话题贵阳网站建设推广公司
  • 如何建网站做传奇网友中国做网站找谁
  • 营销型网站的缺点文案素材网站
  • 怎样清理网站后门西安传媒公司
  • 灰色链网站建设wordpress多国语言设置
  • 高端网站建设郑州橄榄树网站建设
  • 做商城网站企业导柱导套网站建设
  • 网络运维基础知识seo技术分类
  • 购物网站产品做促销能赚钱吗眉山网站制作
  • 鹤山做网站网站内容页相关性怎么做
  • 全椒县建设局网站张店网站制作首选专家
  • 建网站源码建站详解南京制作网页设计
  • 外贸网站建设优化营销公众号关键词点歌
  • 济宁网站建设公司怎么样腾讯会议收费
  • 网站后台目录如何保护重庆建设工程信息网官网入口网页
  • 成都最专业做网站的大型网站建设培训课件
  • 软件站手机vi设计公司
  • 建网站一定要备案吗国外优秀设计网站有哪些
  • 个人网站系统网站值多少钱
  • 网站主页设计注意点彬县网站建设
  • 网站建设案例 算命网站免费设计房子的软件
  • 深圳市外贸网站建设多少钱cnzz统计代码如何添加到网站上去
  • 电商网站建设开发公司网站建设赚取流量费
  • 网站开发维护需要哪些岗位海外网络推广培训
  • 6做网站自己开网站能赚钱吗