Redis使用汇总3 set命令

近期有空,汇总下redis各个数据结构的操作命令。这篇汇总set命令用于加深记忆。

SADD

sadd命令用于插入set集合value。返回插入成功的元素。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		System.out.println("sadd命令执行结果 " + jedis.sadd("append1", "a", "b", "c"));
		System.out.println("sadd命令执行结果 " + jedis.sadd("append1", "a", "d", "e"));

SCARD

scard命令用于返回key对应的集合数,若key不存在则返回0。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "b", "c");
		System.out.println("scard命令执行结果 " + jedis.scard("append1"));
		System.out.println("scard命令执行结果 " + jedis.scard("append2"));

SDIFF

sdiff命令用于返回集合的差集(差集集合概念简述看这里)。若key不存在则返回空集。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "b", "c", "d");
		jedis.sadd("append2", "b", "c", "w");
		jedis.sadd("append3", "a", "b", "e");
		System.out.println("sdiff命令执行结果 " + jedis.sdiff("append1", "append2", "append3"));
		System.out.println("sdiff命令执行结果 " + jedis.sdiff("append1", "append2", "append4"));
		System.out.println("sdiff命令执行结果 " + jedis.sdiff("append5", "append2", "append3"));
                sdiff命令执行结果 [d]
                sdiff命令执行结果 [d, a]
                sdiff命令执行结果 []

SDIFFSTORE

sdiffstore命令用于将得到的差集集合存入指定集合中,若指定集合存在则覆盖原集合,若集合不存在则新建key并将差集存入。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "a", "b", "c", "c", "d");
		jedis.sadd("append2", "b", "c", "w");
		jedis.sadd("append3", "a", "b", "e");
		System.out.println("sdiffstore命令执行结果 " + jedis.sdiffstore("append6", "append1", "append2", "append3"));
                sdiffstore命令执行结果 1

SINTER

sinter命令用于返回集合的交集。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "a", "b", "c", "c", "d");
		jedis.sadd("append2", "b", "c", "w");
		jedis.sadd("append3", "a", "b", "e");
		System.out.println("sinter命令执行结果 " + jedis.sinter("append1", "append2", "append3"));
                sinter命令执行结果 [b]

SINTERSTORE

sinterstore命令用于将集合的交集存入指定集合,若集合已存在元素则覆盖,若集合不存在则新建key并存入集合。结果返回交集的元素个数。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "a", "b", "c", "c", "d");
		jedis.sadd("append2", "b", "c", "w");
		jedis.sadd("append3", "a", "b", "e");
		System.out.println("sinterstore命令执行结果 " + jedis.sinterstore("append4", "append1", "append2", "append3"));
                sinterstore命令执行结果 1

SISMEMBER

sismember命令用于检索value是否存在于集合中,若存在则返回1若不存在或key不存在则返回0。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "a", "b", "c", "c", "d");
		System.out.println("sismember命令执行结果 " + jedis.sismember("append1", "a"));
		System.out.println("sismember命令执行结果 " + jedis.sismember("append1", "z"));
		System.out.println("sismember命令执行结果 " + jedis.sismember("append2", "a"));
                sismember命令执行结果 true
                sismember命令执行结果 false
                sismember命令执行结果 false

SMEMBERS

smembers用于返回key对应的集合元素。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "a", "b", "c", "c", "d");
		System.out.println("smembers命令执行结果 " + jedis.smembers("append1"));
		System.out.println("smembers命令执行结果 " + jedis.smembers("append2"));
                smembers命令执行结果 [a, b, c, d]
                smembers命令执行结果 []

SMOVE

smove命令用于将源集合的元素移除并存储至目标集合。若源集合不存在该元素则不做操作,若目标集合存在该元素则只是将源集合中的元素移除。若移除成功则返回1否则返回0。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "a", "b", "c", "c", "e");
		jedis.sadd("append2", "a", "a", "b", "c", "c", "d");
		System.out.println("smove命令执行结果 " + jedis.smove("append1", "append2", "e"));
		for (String string : jedis.smembers("append1")) {
			System.out.print(string + " ");
		}
		System.out.println();
		for (String string : jedis.smembers("append2")) {
			System.out.print(string + " ");
		}
		System.out.println();
		System.out.println("smove命令执行结果 " + jedis.smove("append1", "append2", "a"));
		for (String string : jedis.smembers("append1")) {
			System.out.print(string + " ");
		}
		System.out.println();
		for (String string : jedis.smembers("append2")) {
			System.out.print(string + " ");
		}
                smove命令执行结果 1
                a b c 
                a b c d e 
                smove命令执行结果 1
                b c 
                a b c d e 

SPOP

spop命令用于随机从set集合中弹出一个元素。若无元素或不存在该key则返回null。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "b", "c", "e");
		jedis.sadd("append2", "a", "b", "c", "d");
		System.out.println("spop命令执行结果 " + jedis.spop("append1"));
		System.out.println("spop命令执行结果 " + jedis.spop("append2"));
		System.out.println("spop命令执行结果 " + jedis.spop("append3"));
                spop命令执行结果 c
                spop命令执行结果 b
                spop命令执行结果 null

SRANDMEMBER

srandmember命令用于从set集合中获取指定个数的元素,若元素大于set集合元素个数则获取全部的集合元素,若count为负数则获取绝对值后的count个元素,若绝对值超过元素数量则会出现一个元素出现多次的情况。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "b", "c", "e");
		System.out.println("srandmember命令执行结果 " + jedis.srandmember("append1"));
		System.out.println("srandmember命令执行结果 " + jedis.srandmember("append2"));
                srandmember命令执行结果 e
                srandmember命令执行结果 null

SREM

srem命令用于删除指定的元素,如果key不存在则返回0否则返回被移除元素的数量。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "b", "c", "e");
		System.out.println("srem命令执行结果 " + jedis.srem("append1", "a", "b"));
		System.out.println("srem命令执行结果 " + jedis.srem("append", "a", "b"));
                srem命令执行结果 2
                srem命令执行结果 0

SUNION

sunion用于获取set集合的并集。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "b", "e");
		jedis.sadd("append2", "a", "b", "c", "e");
		jedis.sadd("append3", "a", "b", "c", "f");
		System.out.println("sunion命令执行结果 " + jedis.sunion("append1", "append2", "append"));
                sunion命令执行结果 [a, b, c, e]

SUNIONSTORE

sunionstore命令与sunion类似,唯一的不同是该命令会将产生的并集存储到目标集合中,若集合中已有元素则覆盖原有元素。返回值为并集的个数。

		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.sadd("append1", "a", "b", "e");
		jedis.sadd("append2", "a", "b", "c", "e");
		jedis.sadd("append3", "a", "b", "c", "f");
		System.out.println("sunionstore命令执行结果 " + jedis.sunionstore("append4", "append1", "append2", "append3"));
                sunionstore命令执行结果 5

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值