RedisTemplate操作Redis数据:Set类型

Set类型和List类似,只不过没有重复元素,基于哈希表因此无序

NewImage

操作

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")));
}
}

比较简单

发表回复