Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
commons
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
3
Merge Requests
3
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DevOps
commons
Commits
1d5e974f
Commit
1d5e974f
authored
Jul 28, 2017
by
zhiguo.liu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
# 添加 RedisUtils 类。
parent
4b2bffa3
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
0 deletions
+34
-0
RedisUtils.java
src/main/java/cn/quantgroup/xyqb/Utils/RedisUtils.java
+34
-0
No files found.
src/main/java/cn/quantgroup/xyqb/Utils/RedisUtils.java
0 → 100644
View file @
1d5e974f
package
cn
.
quantgroup
.
xyqb
.
Utils
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.script.DefaultRedisScript
;
import
org.springframework.data.redis.core.script.RedisScript
;
import
java.util.Arrays
;
/**
* Created by zhiguo.liu on 2017/7/28.
*/
public
class
RedisUtils
{
/**
* 通过 setnx + expire 命令,原子性给某个 key 上锁并设置过期时间
* 上锁成功返回 true ,上锁失败返回 false.
*
* @param redisTemplate
* @param key
* @param expire
* @return
*/
public
static
boolean
lock
(
RedisTemplate
redisTemplate
,
String
key
,
Integer
expire
)
{
String
lua
=
"local result = redis.call(\"setnx\",KEYS[1],\"1\")if result == 1 then redis.call(\"expire\",KEYS[1],ARGV[1]) end return result"
;
RedisScript
<
Long
>
script
=
new
DefaultRedisScript
<>(
lua
,
Long
.
class
);
Object
result
=
redisTemplate
.
execute
(
script
,
Arrays
.
asList
(
key
),
expire
.
toString
());
if
(
result
!=
null
&&
result
instanceof
Long
)
{
return
(
Long
)
result
==
1
;
}
return
false
;
}
}
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