lettuce连接redis使用的是uri作为参数传递的形式 连接时一直有如下错误
Exception in thread "main" java.net.URISyntaxException: Malformed escape pair at index 21: redis://dsa dafdasfaa&%@127.0.0.1:6379/0?timeout=10s
密码已经被替换 查了很多资料 最后知道原因是一旦地址中涉及了一些特殊字符 则不能直接用string 转换成uri 网上给的思路是用url 然后 再用url 转成uri 然后就是一系列的 gethost getPath 等 其实本质上只有一两个特殊字符而已 直接用对应的方式替换掉即可 以下是常见的特殊字符
字符 - URL编码值
空格 - %20
" - %22
# - %23
% - %25
& - %26
( - %28
) - %29
+ - %2B
, - %2C
/ - %2F
: - %3A
; - %3B
< - %3C
= - %3D
> - %3E
? - %3F
@ - %40
\ - %5C
| - %7C
把用到的特殊字符替换一下 就能正确运行