前提

在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结。SpringMVC中处理控制器参数的接口是HandlerMethodArgumentResolver,此接口有众多子类,分别处理不同(注解类型)的参数,下面只列举几个子类:

  • RequestParamMethodArgumentResolver:解析处理使用了@RequestParam注解的参数、MultipartFile类型参数和Simple类型(如longint等类型)参数。
  • RequestResponseBodyMethodProcessor:解析处理@RequestBody注解的参数。
  • PathVariableMapMethodArgumentResolver:解析处理@PathVariable注解的参数。

前提

前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景。为了模拟真实的交互场景,先定制一下整个交互流程。第三方传输(包括请求和响应)数据报文包括三个部分:

  • 1、timestamp,long类型,时间戳。
  • 2、data,String类型,实际的业务请求数据转化成的Json字符串再进行加密得到的密文。
  • 3、sign,签名,生成规则算法伪代码是SHA-256(data=xxx&timestamp=11111),防篡改。

为了简单起见,加密和解密采用AES,对称秘钥为”throwable”。上面的场景和加解密例子仅仅是为了模拟真实场景,安全系数低,切勿直接用于生产环境。

前提

未来一段时间开发的项目或者需求会大量使用到Redis,趁着这段时间业务并不太繁忙,抽点时间预习和复习Redis的相关内容。刚好看到博客下面的UVPV统计,想到了最近看书里面提到的HyperLogLog数据类型,于是花点时间分析一下它的使用方式和使用场景(暂时不探究HyperLogLog的实现原理)。RedisHyperLogLog数据类型是Redid 2.8.9引入的,使用的时候确保Redis版本>= 2.8.9

前提

最近忙于业务开发、交接和游戏,加上碰上了不定时出现的犹豫期和困惑期,荒废学业了一段时间。天冷了,要重新拾起开始下阶段的学习了。之前接触到的一些数据搜索项目,涉及到请求模拟,基于反爬需要使用随机的User Agent,于是使用Redis实现了一个十分简易的UA池。

前提

Redis5.x之后,单机、哨兵、集群搭建的难度已经简化。鉴于目前看到太多文章都是复制粘贴以往一些3.x版本的一些内容,所以打算基于当前Redis的最新版本做一次单机、哨兵和集群的搭建,记录一下过程步骤和遇到的问题。编写本文的时间是2019年10月6日(国庆假期…..),当前Redis的最新版本为5.0.5。操作系统用的是虚拟机里面安装的CentOS 7。先确定已经安装好Redis服务,可以参考笔者写的前一篇文章:《Redis5.x单机服务搭建手记》。出于书写习惯,本文有可能把哨兵称为SentinelRedis Sentinel、哨兵或者Redis哨兵,这四个名词是等价的。

Redis5.x之后,单机、哨兵、集群搭建的难度已经简化。鉴于目前看到太多文章都是复制粘贴以往一些3.x版本的一些内容,所以打算基于当前Redis的最新版本做一次单机、哨兵和集群的搭建,记录一下过程步骤和遇到的问题。编写本文的时间是2019年10月5日(国庆假期…..),当前Redis的最新版本为5.0.5。操作系统用的是虚拟机里面安装的CentOS 7

背景

国庆长假算是过半,宅了两天感觉没什么作为,天天睡到中午,然后吃午饭(不出门,吃外卖),午饭后又睡到晚餐时间吃第二顿外卖。心里感觉有点咸鱼。

想了下,这样下去不行,必须出去走走,做一条活动的不那么咸的咸鱼。于是2019年10月2日凌晨找了一些老广州小食攻略,从里面挑出一些想吃的或者新奇的东东(咸鱼对玩的和看的提不起兴趣,而对吃的兴趣比较大)。参考了下面两个帖子:

整理了几个突然想去试试的店:

早上起来临时写的备忘录,准备了一下就随缘出发。

前提

Lettuce是一个RedisJava驱动包,初识她的时候是使用RedisTemplate的时候遇到点问题Debug到底层的一些源码,发现spring-data-redis的驱动包在某个版本之后替换为LettuceLettuce翻译为生菜,没错,就是吃的那种生菜,所以它的Logo长这样:

m-r-c-l-1

既然能被Spring生态所认可,Lettuce想必有过人之处,于是笔者花时间阅读她的官方文档,整理测试示例,写下这篇文章。编写本文时所使用的版本为Lettuce 5.1.8.RELEASESpringBoot 2.1.8.RELEASEJDK [8,11]超长警告:这篇文章断断续续花了两周完成,超过4万字…..