Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
midjourney-proxy
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐少华
midjourney-proxy
Commits
8dc866b2
Commit
8dc866b2
authored
Sep 28, 2020
by
胡青青
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: [none] redis缓存命中率低,添加jedisCluster操作redis查询日志
parent
e18ab00e
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
172 additions
and
25 deletions
+172
-25
JedisClusterAspect.java
...ava/com/pcloud/common/core/aspect/JedisClusterAspect.java
+172
-25
No files found.
pcloud-common-core/src/main/java/com/pcloud/common/core/aspect/JedisClusterAspect.java
View file @
8dc866b2
package
com
.
pcloud
.
common
.
core
.
aspect
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.annotation.AfterReturning
;
...
...
@@ -10,7 +11,6 @@ import org.springframework.stereotype.Component;
import
org.springframework.util.ResourceUtils
;
import
java.io.*
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.atomic.AtomicInteger
;
...
...
@@ -24,18 +24,55 @@ import java.util.concurrent.atomic.LongAdder;
@Slf4j
public
class
JedisClusterAspect
{
//需要统计的方法调用次数
private
LongAdder
allExistsLongAdder
=
new
LongAdder
();
private
LongAdder
allLpushLongAdder
=
new
LongAdder
();
private
LongAdder
allGetLongAdder
=
new
LongAdder
();
private
LongAdder
allRpopLongAdder
=
new
LongAdder
();
private
LongAdder
allHgetAllLongAdder
=
new
LongAdder
();
private
LongAdder
missExistsLongAdder
=
new
LongAdder
();
private
LongAdder
missGetLongAdder
=
new
LongAdder
();
private
LongAdder
missRpopLongAdder
=
new
LongAdder
();
private
LongAdder
missHgetAllLongAdder
=
new
LongAdder
();
private
ConcurrentHashMap
<
String
,
AtomicInteger
>
missKeyMap
=
new
ConcurrentHashMap
<>();
private
ConcurrentHashMap
<
String
,
AtomicInteger
>
tempMap
=
new
ConcurrentHashMap
<>();
private
LongAdder
getSetLongAdder
=
new
LongAdder
();
private
LongAdder
missGetSetLongAdder
=
new
LongAdder
();
private
LongAdder
getSetRLongAdder
=
new
LongAdder
();
private
LongAdder
missgetSetRLongAdder
=
new
LongAdder
();
private
LongAdder
setnxLongAdder
=
new
LongAdder
();
private
LongAdder
missSetnxLongAdder
=
new
LongAdder
();
private
LongAdder
hmgetLongAdder
=
new
LongAdder
();
private
LongAdder
misshmgetLongAdder
=
new
LongAdder
();
private
LongAdder
hgetLongAdder
=
new
LongAdder
();
private
LongAdder
misshgetLongAdder
=
new
LongAdder
();
private
LongAdder
hlenLongAdder
=
new
LongAdder
();
private
LongAdder
misshlenLongAdder
=
new
LongAdder
();
private
LongAdder
hkeysLongAdder
=
new
LongAdder
();
private
LongAdder
misshkeysLongAdder
=
new
LongAdder
();
private
LongAdder
lpopLongAdder
=
new
LongAdder
();
private
LongAdder
misslpopLongAdder
=
new
LongAdder
();
private
LongAdder
zcardLongAdder
=
new
LongAdder
();
private
LongAdder
misszcardLongAdder
=
new
LongAdder
();
private
LongAdder
zrevrangeLongAdder
=
new
LongAdder
();
private
LongAdder
misszrevrangeLongAdder
=
new
LongAdder
();
private
LongAdder
ttlLongAdder
=
new
LongAdder
();
private
LongAdder
misshttlLongAdder
=
new
LongAdder
();
private
LongAdder
zrankLongAdder
=
new
LongAdder
();
private
LongAdder
misszrankLongAdder
=
new
LongAdder
();
private
LongAdder
lrangeLongAdder
=
new
LongAdder
();
private
LongAdder
misslrangeLongAdder
=
new
LongAdder
();
private
LongAdder
llenLongAdder
=
new
LongAdder
();
private
LongAdder
missllenLongAdder
=
new
LongAdder
();
public
JedisClusterAspect
()
{
new
PringLogThread
().
start
();
...
...
@@ -57,20 +94,45 @@ public class JedisClusterAspect {
while
(
true
)
{
BufferedWriter
out
=
null
;
try
{
Thread
.
sleep
(
30
*
60
*
1000
);
Thread
.
sleep
(
60
*
60
*
1000
);
tempMap
.
clear
();
tempMap
.
putAll
(
missKeyMap
);
missKeyMap
.
clear
();
StringBuffer
logStr
=
new
StringBuffer
(
"lpush调用:"
+
allLpushLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"exists调用:"
+
allExistsLongAdder
.
intValue
()
+
"次,未命中:"
+
missExistsLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
StringBuffer
logStr
=
new
StringBuffer
(
"\n"
);
logStr
.
append
(
"get调用:"
+
allGetLongAdder
.
intValue
()
+
"次,未命中:"
+
missGetLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"rpop调用:"
+
allRpopLongAdder
.
intValue
()
+
"次,未命中:"
+
missRpopLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"hgetall调用:"
+
allHgetAllLongAdder
.
intValue
()
+
"次,未命中:"
+
missHgetAllLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"getSet调用:"
+
getSetLongAdder
.
intValue
()
+
"次,未命中:"
+
missGetSetLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"hget调用:"
+
hgetLongAdder
.
intValue
()
+
"次,未命中:"
+
misshgetLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"hlen调用:"
+
hlenLongAdder
.
intValue
()
+
"次,未命中:"
+
misshlenLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"lrange调用:"
+
lrangeLongAdder
.
intValue
()
+
"次,未命中:"
+
misslrangeLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"llen调用:"
+
llenLongAdder
.
intValue
()
+
"次,未命中:"
+
missllenLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"hkeys调用:"
+
hkeysLongAdder
.
intValue
()
+
"次,未命中:"
+
misshkeysLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"lpop调用:"
+
lpopLongAdder
.
intValue
()
+
"次,未命中:"
+
misslpopLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"zcard调用:"
+
zcardLongAdder
.
intValue
()
+
"次,未命中:"
+
misszcardLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"zrevrange调用:"
+
zrevrangeLongAdder
.
intValue
()
+
"次,未命中:"
+
misszrevrangeLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"ttl调用:"
+
ttlLongAdder
.
intValue
()
+
"次,未命中:"
+
misshttlLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"zrank调用:"
+
zrankLongAdder
.
intValue
()
+
"次,未命中:"
+
misszrankLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"getSetR调用:"
+
getSetRLongAdder
.
intValue
()
+
"次,未命中:"
+
missgetSetRLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"setnx调用:"
+
setnxLongAdder
.
intValue
()
+
"次,未命中:"
+
missSetnxLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"hmget调用:"
+
hmgetLongAdder
.
intValue
()
+
"次,未命中:"
+
misshmgetLongAdder
.
intValue
()
+
"次"
);
logStr
.
append
(
"\n"
);
logStr
.
append
(
"\n"
);
String
fileName
=
"redisOperate"
+
DateUtils
.
getYmdHmsTime
()
+
".log"
;
out
=
new
BufferedWriter
(
new
FileWriter
(
path
+
fileName
));
out
.
write
(
logStr
.
toString
());
...
...
@@ -97,40 +159,125 @@ public class JedisClusterAspect {
Object
[]
obj
=
joinPoint
.
getArgs
();
String
key
=
obj
[
0
].
toString
();
switch
(
methodName
)
{
case
"exists"
:
allExistsLongAdder
.
add
(
1
);
if
(
result
.
toString
().
equals
(
"false"
))
{
missExistsLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"lpush"
:
allLpushLongAdder
.
add
(
1
);
break
;
case
"get"
:
allGetLongAdder
.
add
(
1
);
if
(
result
==
null
)
{
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
())
)
{
missGetLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
if
(
missKeyMap
.
get
(
key
).
intValue
()
>
5
)
{
log
.
warn
(
"key: {}未命中 {}次"
,
key
,
missKeyMap
.
get
(
key
).
intValue
());
}
}
break
;
case
"rpop"
:
allRpopLongAdder
.
add
(
1
);
if
(
result
==
null
)
{
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
())
)
{
missRpopLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"hgetAll"
:
allHgetAllLongAdder
.
add
(
1
);
if
(
result
==
null
)
{
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
())
)
{
missHgetAllLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"getSet"
:
getSetLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
missGetSetLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"getSetR"
:
getSetRLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
missgetSetRLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"setnx"
:
setnxLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
missSetnxLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"hmget"
:
hmgetLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
misshmgetLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"hget"
:
hgetLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
misshgetLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"hlen"
:
hlenLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
misshlenLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"lrange"
:
lrangeLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
misslrangeLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"llen"
:
llenLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
missllenLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"hkeys"
:
hkeysLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
misshkeysLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"lpop"
:
lpopLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
misslpopLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"zcard"
:
zcardLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
misszcardLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"zrevrange"
:
zrevrangeLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
misszrevrangeLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"ttl"
:
ttlLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
misshttlLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
case
"zrank"
:
zrankLongAdder
.
add
(
1
);
if
(
result
==
null
||
StringUtil
.
isEmpty
(
result
.
toString
()))
{
misszrankLongAdder
.
add
(
1
);
addMissCount
(
missKeyMap
,
key
);
}
break
;
default
:
}
...
...
Write
Preview
Markdown
is supported
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