Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mica
mica
提交
e67035a9
mica
项目概览
mica
/
mica
通知
10
Star
2
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
mica
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e67035a9
编写于
3月 10, 2021
作者:
如梦技术
🐛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
🐛
mica-redis 修复 ScanOptions count 空指针。
上级
ed0b7412
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
20 deletion
+24
-20
mica-redis/src/main/java/net/dreamlu/mica/redis/cache/MicaRedisCache.java
...ain/java/net/dreamlu/mica/redis/cache/MicaRedisCache.java
+24
-20
未找到文件。
mica-redis/src/main/java/net/dreamlu/mica/redis/cache/MicaRedisCache.java
浏览文件 @
e67035a9
...
...
@@ -224,11 +224,12 @@ public class MicaRedisCache {
final
Set
<
String
>
keySet
=
new
HashSet
<>();
RedisSerializer
<
String
>
keySerializer
=
(
RedisSerializer
<
String
>)
redisTemplate
.
getKeySerializer
();
return
redisTemplate
.
execute
((
RedisCallback
<
Pair
<
Long
,
Set
<
String
>>>)
action
->
{
ScanOptions
options
=
ScanOptions
.
scanOptions
()
.
match
(
pattern
)
.
count
(
count
)
.
build
();
try
(
Cursor
<
byte
[]>
cursor
=
action
.
scan
(
options
))
{
ScanOptions
.
ScanOptionsBuilder
builder
=
ScanOptions
.
scanOptions
()
.
match
(
pattern
);
if
(
count
!=
null
)
{
builder
.
count
(
count
);
}
try
(
Cursor
<
byte
[]>
cursor
=
action
.
scan
(
builder
.
build
()))
{
cursor
.
forEachRemaining
((
item
)
->
keySet
.
add
(
keySerializer
.
deserialize
(
item
)));
return
Pair
.
create
(
cursor
.
getPosition
(),
keySet
);
}
catch
(
IOException
e
)
{
...
...
@@ -259,11 +260,12 @@ public class MicaRedisCache {
public
void
scan
(
@Nullable
String
pattern
,
@Nullable
Long
count
,
Consumer
<
String
>
consumer
)
{
RedisSerializer
<
String
>
keySerializer
=
(
RedisSerializer
<
String
>)
redisTemplate
.
getKeySerializer
();
redisTemplate
.
execute
((
RedisCallback
<
Object
>)
action
->
{
ScanOptions
options
=
ScanOptions
.
scanOptions
()
.
match
(
pattern
)
.
count
(
count
)
.
build
();
try
(
Cursor
<
byte
[]>
cursor
=
action
.
scan
(
options
))
{
ScanOptions
.
ScanOptionsBuilder
builder
=
ScanOptions
.
scanOptions
()
.
match
(
pattern
);
if
(
count
!=
null
)
{
builder
.
count
(
count
);
}
try
(
Cursor
<
byte
[]>
cursor
=
action
.
scan
(
builder
.
build
()))
{
cursor
.
forEachRemaining
((
item
)
->
{
String
redisKey
=
keySerializer
.
deserialize
(
item
);
consumer
.
accept
(
redisKey
);
...
...
@@ -300,11 +302,12 @@ public class MicaRedisCache {
final
Set
<
String
>
keySet
=
new
HashSet
<>();
RedisSerializer
<
String
>
keySerializer
=
(
RedisSerializer
<
String
>)
redisTemplate
.
getKeySerializer
();
return
redisTemplate
.
execute
((
RedisCallback
<
Pair
<
Long
,
Set
<
String
>>>)
action
->
{
ScanOptions
options
=
ScanOptions
.
scanOptions
()
.
match
(
pattern
)
.
count
(
count
)
.
build
();
try
(
Cursor
<
byte
[]>
cursor
=
action
.
sScan
(
keySerializer
.
serialize
(
key
),
options
))
{
ScanOptions
.
ScanOptionsBuilder
builder
=
ScanOptions
.
scanOptions
()
.
match
(
pattern
);
if
(
count
!=
null
)
{
builder
.
count
(
count
);
}
try
(
Cursor
<
byte
[]>
cursor
=
action
.
sScan
(
keySerializer
.
serialize
(
key
),
builder
.
build
()))
{
cursor
.
forEachRemaining
((
item
)
->
keySet
.
add
(
keySerializer
.
deserialize
(
item
)));
return
Pair
.
create
(
cursor
.
getPosition
(),
keySet
);
}
catch
(
IOException
e
)
{
...
...
@@ -337,11 +340,12 @@ public class MicaRedisCache {
public
void
sScan
(
String
key
,
@Nullable
String
pattern
,
@Nullable
Long
count
,
Consumer
<
String
>
consumer
)
{
RedisSerializer
<
String
>
keySerializer
=
(
RedisSerializer
<
String
>)
redisTemplate
.
getKeySerializer
();
redisTemplate
.
execute
((
RedisCallback
<
Object
>)
action
->
{
ScanOptions
options
=
ScanOptions
.
scanOptions
()
.
match
(
pattern
)
.
count
(
count
)
.
build
();
try
(
Cursor
<
byte
[]>
cursor
=
action
.
sScan
(
keySerializer
.
serialize
(
key
),
options
))
{
ScanOptions
.
ScanOptionsBuilder
builder
=
ScanOptions
.
scanOptions
()
.
match
(
pattern
);
if
(
count
!=
null
)
{
builder
.
count
(
count
);
}
try
(
Cursor
<
byte
[]>
cursor
=
action
.
sScan
(
keySerializer
.
serialize
(
key
),
builder
.
build
()))
{
cursor
.
forEachRemaining
((
item
)
->
{
String
redisKey
=
keySerializer
.
deserialize
(
item
);
consumer
.
accept
(
redisKey
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录