redis中大Value问题的解决

我们日常在使用redis的时候, 有时会碰到大Value的问题, 超级大的一个Value存到redis中去, 这样其实不好, 我们可以把value进行压缩. 

下面我们使用java自带的压缩, 对字符串进行压缩.

/*** 使用gzip压缩字符串** @param originString 要压缩的字符串* @return 压缩后的字符串*/public static String compress(String originString) {if (originString == null || originString.length() == 0) {return originString;}ByteArrayOutputStream out = new ByteArrayOutputStream();try (GZIPOutputStream gzip = new GZIPOutputStream(out);) {gzip.write(originString.getBytes());} catch (IOException e) {e.printStackTrace();}return new sun.misc.BASE64Encoder().encode(out.toByteArray());}/*** 使用gzip解压缩** @param compressedString 压缩字符串* @return*/public static String uncompress(String compressedString) {if (compressedString == null || compressedString.length() == 0) {return null;}ByteArrayOutputStream out = new ByteArrayOutputStream();byte[] compressedByte = new byte[0];try {compressedByte = new sun.misc.BASE64Decoder().decodeBuffer(compressedString);} catch (IOException e) {e.printStackTrace();}String originString = null;try (ByteArrayInputStream in = new ByteArrayInputStream(compressedByte);GZIPInputStream ginzip = new GZIPInputStream(in);) {byte[] buffer = new byte[1024];int offset = -1;while ((offset = ginzip.read(buffer)) != -1) {out.write(buffer, 0, offset);}originString = out.toString();} catch (IOException e) {e.printStackTrace();}return originString;}

测试方法:

public static void main(String[] args) {String compress = compress("parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@68dc098b\n" +"2020-10-27 17:53:22,377 [] [main] INFO  org.springframework.data.repository.config.RepositoryConfigurationDelegate -TID: N/A - Multiple Spring Data modules found, entering strict repository configuration mode!\n" +"2020-10-27 17:53:22,751 [] [main] WARN  org.springframework.context.annotation.ConfigurationClassPostProcessor -TID: N/A - Cannot enhance @Configuration bean definition 'com.ctrip.framework.apollo.spring.boot.ApolloAutoConfiguration' since its singleton instance has been created too early. The typical cause is a non-static @Bean method with a BeanDefinitionRegistryPostProcessor return type: Consider declaring such methods as 'static'.\n" +"2020-10-27 17:53:23,043 [] [main] INFO  org.springframework.cloud.context.scope.GenericScope -TID: N/A - BeanFactory id=96a1a9f4-ca0a-3f29-9933-63914650547a\n" +"2020-10-27 17:53:23,103 [] [main] INFO  o.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor -TID: N/A - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring\n" +"2020-10-27 17:53:23,141 [] [main] WARN  o.s.boot.context.properties.ConfigurationPropertiesBindingPostProcessor -TID: N/A - Multiple PropertySourcesPlaceholderConfigurer beans registered [propertySourcesPlaceholderConfigurer, org.springframework.context.support.PropertySourcesPlaceholderConfigurer], falling back to Environment\n" +"2020-10-27 17:53:23,173 [] [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker -TID: N/A - Bean 'com.ydcloud.qurey.customer.feign.customer.ActUserFollowService' of type [org.springframework.cloud.netflix.feign.FeignClientFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)\n" +"2020-10-27 17:53:23,175 [] [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker -TID: N/A - Bean 'com.ydcloud.qurey.customer.feign.customer.CueManagementService' of type [org.springframework.cloud.netflix.feign.FeignClientFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)\n" +"2020-10-27 17:53:23,178 [] [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker -TID: N/A - Bean 'com.ydcloud.qurey.customer.feign.customer.CustomerDemandSolutionServiceV2' of type [org.springframework.cloud.netflix.feign.FeignClientFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)\n" +"2020-10-27 17:53:23,181 [] [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker -TID: N/A - Bean 'com.ydcloud.qurey.customer.feign.customer.CustomerFollowUpTaskService' of type [org.springframework.cloud.netflix.feign.FeignClientFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)\n" +"2020-10-27 17:53:23,183 [] [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker -TID: N/A - Bean 'com.ydcloud.qurey.customer.feign.customer.CustomerService' of type [org.springframework.cloud.netflix.feign.FeignClientFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)\n" +"2020-10-27 17:53:23,186 [] [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker -TID: N/A - Bean 'com.ydcloud.qurey.customer.feign.resource.BuildingFloorRoomService' of type [org.springframework.cloud.netflix.feign.FeignClientFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)\n" +"2020-10-27 17:53:23,188 [] [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker -TID: N/A - Bean 'com.ydcloud.qurey.customer.feign.resource.BuildingService' of type [org.springframework.cloud.netflix.feign.FeignClientFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)\n" +"2020-10-27 17:53:23,190 [] [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker -TID: N/A - Bean 'com.ydcloud.qurey.customer.feign.resource.ParkProjectService' of type [org.springframework.cloud.netflix.feign.FeignClientFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)");System.out.println(compress);String uncompress = uncompress(compress);System.out.println(uncompress);System.out.println(compress.length());System.out.println(uncompress.length());}

 运行测试代码, 得到以下结果, 压缩后的字符串长度是: 1252, 原始字符串的长度是:  4515, 有很大的改善效果.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/57667.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中大素数生成算法

目前的公开密钥 算法大部分基于大整数分解、有限域上的离散对数问题和椭 圆曲线上的离散对数问题,这些数学难题的构建大部分都需 要生成一种超大的素数,尤其在经典的RSA算法中,生成的素数的质量对系统的安全性有很大的影响。 1.原理 费马小…

解决js中大数的问题

大数的理解: 就是由于数字太大了,然后js解析不了,不认识. 就比如实际生活中,在双11的时候,我们知道淘宝一夜之间总购买量肯定是一个很大很大的金额,当我们前端碰到一个非常大的数字的时候,js可能会解析不了. JS中的安全数字: > Number.MAX_SAFE_INTEGER 可以查看js中的…

CSP 201903-1 小中大

题目链接: 计算机软件能力认证考试系统http://118.190.20.162/view.page?gpidT89 【分析】主要学一下java的四舍五入,String,format("%.f", double); import java.util.Arrays; import java.util.Scanner;public cla…

CSP:小中大

试题编号:201903-1 试题名称:小中大 时间限制:1.0s 内存限制:512.0MB 思路:题目很简单,依次输出最大值,中位数,最小值。输出中位数的时候很神奇的出错。。。费了好半天事才改对。…

ccf小中大

试题编号:201903-1试题名称:小中大时间限制:1.0s内存限制:512.0MB问题描述: 思路很简单,但是有很多细节要考虑 如果中位数是小数,则要四舍五入,保留一位小数 否则直接输出整…

Spring中大事务拆分方案

Spring中大事务拆分方案 模块设计的时序图 启动流程 激活事件 完成事件 长事务造成的影响 由于现在事件的完成及后续激活都在一个事务中,比如完成融资申请事件之后会去激活批次启动签约,前置协议,资质认证等事件,这些操作…

AI 将完全取代前端开发吗?

注:今晨,我浏览 Medium,看到了篇颇为标题党的文章,于是我就将它抛给了 ChatGPT。本篇文章全部由 ChatGPT 所写。同时,我也请 ChatGPT 分享了它对此的观点。 最近,我的同事向我讲述了他与他老板的一次谈话。…

全网多种方法解决未连接到互联网 代理服务器出现问题,或者地址有误的错误

文章目录 1. 复现错误2. 分析错误3. 解决错误4. 解决该错误的其他方法5. 补充说明 1. 复现错误 今天,单位的实习生准备下载公司的代码,由于公司的代码放在gitlab上,需要内网才能登录gitlab。 而登陆内网需借助Hillstone Secure Connect&…

【实战篇】37 # 如何使用 QCharts 图表库绘制常用数据图表?

说明 【跟月影学可视化】学习笔记。 QCharts 图表库 QCharts 是一个基于 spritejs 封装的图表库,可以让用户以组件的形式组合出各种图表:https://www.qcharts.cn/#/home QCharts 图表的基本用法 最简单的方式是,直接通过 CDN,…

2021年微软研究博士奖研金名单出炉!三位华人博士生入选,每人42000美元

点击上方“CVer”,选择加"星标"置顶 重磅干货,第一时间送达 本文转载自:AI科技评论 作者 | 陈大鑫 就在今日,微软研究院宣布了2021年微软研究博士奖研金获奖名单! 今年一共有十位在读博士生荣获此殊荣&…

新加坡管理大学何盛烽团队招收计算机视觉、图像生成方向全奖博士生

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—> CV 微信技术交流群 博士申请 | 新加坡管理大学(SMU)何盛烽副教授招收计算机视觉、图像生成方向全奖博士生 新加坡管理大学 新加坡管理大学&#xff0…

【硕博士推荐】国内有哪些不错的CV(计算机视觉)团队?

来源:深度学习技术前沿 编辑: Evans 转载请注明来源! 【导读】计算机视觉是当前人工智能领域的超级热门,本文为大家总结了当前国内比较优秀的计算机视觉团队信息,希望能在大家申请硕士或者博士的过程中,提供一些参考信…

加州大学UC Santa Cruz CSE系助理教授招收多名AI方向全奖博士生及暑期实习生

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 作者:Yuyin Zhou | 源:知乎 https://zhuanlan.zhihu.com/p/437891533 加州大学UC Santa Cruz计算机科学与工程系 (UC Santa Cruz CSE) 周郁音博士招收人工智能方向…

剑桥CS博士推荐,毕业前要掌握的 9 个工具

无论你在创业还是在做学术研究,这些工具都将使你的技能更上一层楼。 学术界在推进技术方面发挥了巨大作用,但学术界和工业界往往存在一种分割状态。我们经常会看到这种现象:无数很棒的辅助工具在学术界被忽视,但在工业界很受欢迎…

科研工作专用ChatGPT

最近,一位开发者在 GitHub 上开源了一个「科研工作专用 ChatGPT」项目,让众多科研工作者大受好评。这个项目能够一键完成论文润色、语法检查、中英互译、代码解释等任务,非常方便实用。 自从 ChatGPT 诞生以来,越来越多的科研工作…

微软数据科学家助理(Data Scientist Associate)认证考试通过经验分享(DP-100)

今天冒着大疫情,去海淀的test center参加考试,通过了微软DP-100 在 Azure 上设计和实现数据科学解决方案,并且获得了经 Microsoft 认证:Azure 数据科学家助理 的证书。 经 Microsoft 认证:Azure 数据科学家助理 考试结…

新加坡管理大学何盛烽团队招收计算机视觉方向公派/访问博士生

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>CV微信技术交流群 新加坡管理大学 新加坡管理大学(Singapore Management University),简称新大 (SMU),…

美国CS PhD Research Scientist找工作经验总结

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 作者:刘壮 | 已授权转载(源:知乎)编辑:CVer https://zhuanlan.zhihu.com/p/537028803 过去小半年的时间主要就在找工作和决定去…

美国佐治亚大学卢国玉老师组招收计算机视觉方向全奖博士生

佐治亚大学 University of Georgia在2022 USNews美国大学排名排48名,全美最佳公立大学排第15,是公立常青藤大学之一。学校坐落在距离亚特兰大一小时车程的Athens,气候宜人,非常安全。亚特兰大机场是美国最大的机场,交通…

新加坡国立大学Robby T. Tan教授招收计算机视觉方向博士生

来源:AI求职 新加坡国立大学 新加坡国立大学(National University of Singapore),简称国大(NUS),是亚洲顶尖、国际知名的研究型大学(2022 年,泰晤士高等教育世界大学排名为世界第 21…