redis开发测试简易代码
import com.谷歌.common.collect.Sets;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.Cursor;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.ScanOptions;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author song
* @version 1.0
*/
@RestController
@RequestMapping(value = "/myRedis")
@Slf4j
public class RedisController implements BaseController {
private final StringRedisTemplate thisClient;
public RedisController(StringRedisTemplate stringRedisTemplate) {
this.thisClient = stringRedisTemplate;
}
@Value("${customize.redis.devops.passwd:}")
private String myPasswd;
@PostMapping("/get")
public Object get(@RequestBody getParam getParam) {
if (check(getParam)) {
return thisClient.opsForValue().get(getParam.key);
} else {
log.error("attentionSomebody,wantToGet,{}", getParam);
return null;
}
}
@PostMapping(value = "/delByKeys")
public void delByKeys(@RequestBody DelParam delParam) {
if (check(delParam)) {
thisClient.delete(delParam.keys);
} else {
log.error("attentionSomebody,wantToDel,{}", delParam);
}
}
@PostMapping(value = "/scan")
public Set<String> scan(@RequestBody ScanParam scanParam) {
if (check(scanParam)) {
return thisClient.execute((RedisCallback<Set<String>>) connection -> {
Set<String> keysTmp = Sets.newHashSet();
ScanOptions scanOptions = ScanOptions.scanOptions().match(scanParam.pattern)
.count(scanParam.count).build();
Cursor<byte[]> cursor = connection.scan(scanOptions);
while (cursor.hasNext()) {
keysTmp.add(new String(cursor.next()));
if (!scanParam.all) {
break;
}
}
cursor.close();
return keysTmp;
});
} else {
log.error("attentionSomebody,wantToScan,{}", scanParam);
return null;
}
}
private <T extends Passwd> boolean check(T passwdParam) {
if (StringUtils.isBlank(myPasswd)) {
return false;
}
return Objects.equals(passwdParam.getPasswd(), myPasswd);
}
@Getter
@Setter
private static class ScanParam extends Passwd {
private String pattern;
private Long count = 200L;
private boolean all = false;
}
@Getter
@Setter
private static class DelParam extends Passwd {
private List<String> keys;
}
@Getter
@Setter
private static class getParam extends Passwd {
private String key;
}
@Getter
@Setter
private static class Passwd extends BaseBean {
private String passwd;
}
public static class BaseBean implements Serializable {
...
}
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibhfhb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22