Redis中setnx的使用
概念
setnx是「SET if Not eXists」的缩写,只有不存在的时候才设置,可以利用它来实现锁的效果。
SETNX key value
若给定的 key 已经存在,则 SETNX 不做任何动作。
SET命令
SET命令可用选项的基本语法
SET KEY VALUE [EX seconds] [PX milliseconds] [NX|XX]
EX
到期时间(以秒为单位)
PX
到期时间(以毫秒为单位)
NX
仅在键不存在时设置键
XX
只有在键已存在时才设置
示例
SET mykey “redis” EX 60 NX
在键“mykey”不存在时,设置键的值为“redis”,到期时间为60秒。
使用redisTemplate操作SetNx
@Override
public boolean setNx(String key,String value, long time) {
try {
RedisCallback<String> callback = (connection) -> {
JedisCommands commands = (JedisCommands) connection.getNativeConnection();
return commands.set(key, value, "NX", "PX", time);
};
String result = redisTemplate.execute(callback);
return !StringUtils.isEmpty(result);
} catch (Exception e) {
logger.error("set redis occured an exception", e);
}
return false;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
2020-01-13 654. 最大二叉树
2020-01-13 100. 相同的树
2020-01-13 387. 字符串中的第一个唯一字符