Set类型和List类似,只不过没有重复元素,基于哈希表因此无序
操作
redis:0>sadd testSet java "1" redis:0>sadd testSet python "1" redis:0>sadd testSet perl "1" redis:0>smembers testSet 1) "java" 2) "perl" 3) "python" redis:0>sismember testSet java "1" redis:0>sismember testSet perl "1" redis:0>sismember testSet python "1" redis:0>sismember testSet php "0" redis:0>spop testSet "perl" redis:0>spop testSet "python" redis:0>spop testSet "java" redis:0>spop testSet null redis:0>smembers testSet redis:0>
调用RedisTemplate可以如下
public class RedisTest extends BaseTest {
@Resource
private RedisTemplate redisTemplate;
@Test(description = "集合类型")
public void redisSetTest() {
redisTemplate.opsForSet().add("testSet", "java");
Assert.assertTrue(redisTemplate.opsForSet().isMember("testSet", "java"));
redisTemplate.opsForSet().add("testSet", "python");
Assert.assertTrue(redisTemplate.opsForSet().isMember("testSet", "python"));
redisTemplate.opsForSet().add("testSet", "perl");
Assert.assertTrue(redisTemplate.opsForSet().isMember("testSet", "perl"));
Set<String> stringSet = new HashSet<>();
stringSet.add("java");
stringSet.add("python");
stringSet.add("perl");
Assert.assertEquals(redisTemplate.opsForSet().members("testSet"), stringSet);
Assert.assertFalse(redisTemplate.opsForSet().isMember("testSet",
redisTemplate.opsForSet().pop("testSet")));
Assert.assertFalse(redisTemplate.opsForSet().isMember("testSet",
redisTemplate.opsForSet().pop("testSet")));
Assert.assertFalse(redisTemplate.opsForSet().isMember("testSet",
redisTemplate.opsForSet().pop("testSet")));
}
}
比较简单