Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Eladmin
Commits
e2b0b93c
Commit
e2b0b93c
authored
Oct 27, 2019
by
dqjdda
Browse files
代码优化
parent
43c09d15
Changes
2
Hide whitespace changes
Inline
Side-by-side
eladmin-common/src/main/java/me/zhengjie/config/RedisConfig.java
View file @
e2b0b93c
...
...
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.parser.ParserConfig;
import
com.alibaba.fastjson.serializer.SerializerFeature
;
import
lombok.extern.slf4j.Slf4j
;
import
me.zhengjie.utils.StringUtils
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.autoconfigure.data.redis.RedisProperties
;
...
...
@@ -26,6 +27,8 @@ import org.springframework.data.redis.serializer.RedisSerializer;
import
java.nio.charset.Charset
;
import
java.nio.charset.StandardCharsets
;
import
java.time.Duration
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @author Zheng Jie
...
...
@@ -83,13 +86,22 @@ public class RedisConfig extends CachingConfigurerSupport {
@Override
public
KeyGenerator
keyGenerator
()
{
return
(
target
,
method
,
params
)
->
{
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
target
.
getClass
().
getName
());
sb
.
append
(
method
.
getName
());
for
(
Object
obj
:
params
)
{
sb
.
append
(
JSON
.
toJSONString
(
obj
).
hashCode
());
Map
<
String
,
Object
>
container
=
new
HashMap
<>();
Class
<?>
targetClassClass
=
target
.
getClass
();
// 类地址
container
.
put
(
"class"
,
targetClassClass
.
toGenericString
());
// 方法名称
container
.
put
(
"methodName"
,
method
.
getName
());
// 包名称
container
.
put
(
"package"
,
targetClassClass
.
getPackage
());
// 参数列表
for
(
int
i
=
0
;
i
<
params
.
length
;
i
++)
{
container
.
put
(
String
.
valueOf
(
i
),
params
[
i
]);
}
return
sb
.
toString
();
// 转为JSON字符串
String
jsonString
=
JSON
.
toJSONString
(
container
);
// 做SHA256 Hash计算,得到一个SHA256摘要作为Key
return
DigestUtils
.
sha256Hex
(
jsonString
);
};
}
...
...
eladmin-system/src/main/java/me/zhengjie/modules/monitor/service/impl/RedisServiceImpl.java
View file @
e2b0b93c
...
...
@@ -27,6 +27,9 @@ public class RedisServiceImpl implements RedisService {
@Value
(
"${loginCode.expiration}"
)
private
Long
expiration
;
@Value
(
"${jwt.online}"
)
private
String
onlineKey
;
public
RedisServiceImpl
(
RedisTemplate
redisTemplate
)
{
this
.
redisTemplate
=
redisTemplate
;
}
...
...
@@ -40,7 +43,7 @@ public class RedisServiceImpl implements RedisService {
Set
<
String
>
keys
=
redisTemplate
.
keys
(
key
);
for
(
String
s
:
keys
)
{
// 过滤掉权限的缓存
if
(
s
.
contains
(
"role::loadPermissionByUser"
)
||
s
.
contains
(
"user::loadUserByUsername"
)
||
s
.
contains
(
"
online
:token"
))
{
if
(
s
.
contains
(
"role::loadPermissionByUser"
)
||
s
.
contains
(
"user::loadUserByUsername"
)
||
s
.
contains
(
online
Key
))
{
continue
;
}
RedisVo
redisVo
=
new
RedisVo
(
s
,
Objects
.
requireNonNull
(
redisTemplate
.
opsForValue
().
get
(
s
)).
toString
());
...
...
@@ -60,7 +63,7 @@ public class RedisServiceImpl implements RedisService {
@Override
public
void
deleteAll
()
{
Set
<
String
>
keys
=
redisTemplate
.
keys
(
"*"
);
redisTemplate
.
delete
(
keys
.
stream
().
filter
(
s
->
!
s
.
contains
(
"
online
:token"
)).
collect
(
Collectors
.
toList
()));
redisTemplate
.
delete
(
keys
.
stream
().
filter
(
s
->
!
s
.
contains
(
online
Key
)).
collect
(
Collectors
.
toList
()));
}
@Override
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment