HSETNX KEY_NAME(模块名) FIELD(工会标识) VALUE(值) 用法

本文通过Redis的HSETNX和SETNX命令展示了如何管理工会成员(guild),包括添加、检查和删除成员。HSETNX用于在哈希表中设置唯一工会名,而SETNX确保字符串键值对的唯一性。这些命令在工会功能中用于增删查操作,提供了高效的数据管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Hash

127.0.0.1:6379> hsetnx guild_ guildName 1
(integer) 1
127.0.0.1:6379> hsetnx guild_ guildName 2
(integer) 0
127.0.0.1:6379> hsetnx guild_ guildName2 1
(integer) 1
127.0.0.1:6379>

因此可以用于:检查这个工会的名字是否已经有了。

前缀都是guild_   field如果重复,那么就会失败。 nx指的是:field不能重复。

String

127.0.0.1:6379> setnx guild_1001 200
(integer) 1
127.0.0.1:6379> setnx guild_1001 200
(integer) 0
127.0.0.1:6379> get guild_1001
"200"
127.0.0.1:6379> get guild_1002
(nil)
127.0.0.1:6379> del guild_1001
(integer) 1
127.0.0.1:6379> get guild_1002
(nil)
127.0.0.1:6379> get guild_1001
(nil)
127.0.0.1:6379>

guild_1001 前缀 guild表示的是工会这个功能,1001这个人是否在某个工会中。

setnx的返回值可以判断是否设置成功。 // 增

del进行删除。 // 删

get用于查询所在的工会id。 // 查

public String get(String key) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.get(key); } public void set(String key, String value) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); jedis.set(key, value); } public void setex(String key, int seconds, String value) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); jedis.setex(key, seconds, value); } public void del(String key) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); jedis.del(key); this.logger.fine(String.format("del:%s", key)); } /** @deprecated */ @Deprecated public String getBy3Key(String key1, String key2, String key3) { return ""; } /** @deprecated */ @Deprecated public void setBy3Key(String key1, String key2, String key3, String value) { } /** @deprecated */ @Deprecated public void setexBy3Key(String key1, String key2, String key3, int seconds, String value) { } /** @deprecated */ @Deprecated public void delBy3Key(String key1, String key2, String key3) { } public Long incr(String key) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.incr(key); } public List<String> mget(String... keys) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.mget(keys); } public void mset(String... keysvalues) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); jedis.mset(keysvalues); } public void hset(String key, String field, String value) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); jedis.hset(key, field, value); } public String hget(String key, String field) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.hget(key, field); } public Long hincr(String key, String field, long value) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.hincrBy(key, field, value); } public Set<String> hkeys(String key) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.hkeys(key); } public List<String> hvals(String key) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.hvals(key); } public Map<String, String> hgetAll(String key) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.hgetAll(key); } public void hmset(String key, Map<String, String> hash) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); jedis.hmset(key, hash); } public List<String> hmget(String key, String... fields) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.hmget(key, fields); } public void hdel(String key, String... fields) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); jedis.hdel(key, fields); this.logger.fine(String.format("hdel:%s,%s", key, Arrays.toString(fields))); } public void lpush(String key, String... strings) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); jedis.lpush(key, strings); } public void rpush(String key, String... strings) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); jedis.rpush(key, strings); } public List<String> lrange(String key, long start, long end) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.lrange(key, start, end); } public String lpop(String key) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.lpop(key); } public String rpop(String key) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.rpop(key); } public void sadd(String key, String... members) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); jedis.sadd(key, members); } public Set<String> smembers(String key) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.smembers(key); } public String spop(String key) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.spop(key); } public Set<String> keys(String pre) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.keys(pre); } public void expire(String key, int ex) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); jedis.expire(key, ex); } public Long ttl(String key) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.ttl(key); } public Long LkmSequenceHincr(String field) { String SEQUENCE_REDIS = "EJB:SEQUENCE:AUTOINCR"; Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.hincrBy(SEQUENCE_REDIS, field, 1L); } public Long[] LkmSequenceBatch(String field, int qty) { Long[] sequenceArr = new Long[qty]; for(int i = 0; i < qty; ++i) { sequenceArr[i] = this.LkmSequenceHincr(field); } return sequenceArr; } public Long setnx(String key, String value) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.setnx(key, value); } public Long hsetnx(String key, String field, String value) { Jedis jedis = (Jedis)this.ctx.getContextData().get("REDIS"); return jedis.hsetnx(key, field, value); } public boolean getSwitchStatus(String switchName) { String result = this.hget("CONFIG:LKM开关:开关集合", switchName); return this.getBoooleanStatus(result); } private boolean getBoooleanStatus(String src) { if (StringUtils.isBlank(src)) { return false; } else { src = src.trim(); return src.matches("(?i)(on)|(true)|(yes)"); } }通过上述操作redis方法实现
最新发布
07-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值