Redis set type

✒️ 2026-07-01 23:06 내용 수정


실습 참고 자료


sadd 메서드

package myproject.redis.lettuce.set;  
  
import io.github.crewhub.redis.lettuce.CommandAction;  
import io.github.crewhub.redis.lettuce.CommandTemplate;  
import org.junit.jupiter.api.Test;  
  
import java.util.Set;  
  
public class RedisLettuceSet {  
  
    @Test  
    public void setBasic() {  
        CommandAction action = redisCommands -> {  
            String key = "lettuce:set";  
  
            // sadd : 데이터 추가  
            redisCommands.sadd(key, "1", "2", "3");  
            redisCommands.sadd(key, "3", "4", "5");  
            redisCommands.sadd(key, "5", "6", "7");  
        };  
  
        CommandTemplate.commandAction(action);  
    }  
}

smembers 메서드

@Test  
public void setBasic() {  
	CommandAction action = redisCommands -> {  
		String key = "lettuce:set";  

		// sadd : 데이터 추가  
		redisCommands.sadd(key, "1", "2", "3");  
		redisCommands.sadd(key, "3", "4", "5");  
		redisCommands.sadd(key, "5", "6", "7");  
		
		// smembers : 추가된 데이터 조회  
		Set<String> setMembers = redisCommands.smembers(key);  
		System.out.println(key + " = " + setMembers);
	};  

	CommandTemplate.commandAction(action);  
}  

springboot_redis 20.png


scard 메서드

@Test  
public void setBasic() {  
    CommandAction action = redisCommands -> {  
  
        String key = "lettuce:set";  
  
        // sadd : 데이터 추가  
        redisCommands.sadd(key, "1", "2", "3");  
        redisCommands.sadd(key, "3", "4", "5");  
        redisCommands.sadd(key, "5", "6", "7");  
  
        // smembers : 추가된 데이터 조회  
        Set<String> setMembers = redisCommands.smembers(key);  
        System.out.println(key + " = " + setMembers);  
  
        // scard : 저장된 데이터 수 조회  
        Long scardResult = redisCommands.scard(key);  
        System.out.println("scardResult = " + scardResult);  
    };  
  
    CommandTemplate.commandAction(action);  
}

springboot_redis 21.png


srem 메서드

@Test  
public void setBasic() {  
    CommandAction action = redisCommands -> {  
  
        String key = "lettuce:set";  
  
        // sadd : 데이터 추가  
        redisCommands.sadd(key, "1", "2", "3");  
        redisCommands.sadd(key, "3", "4", "5");  
        redisCommands.sadd(key, "5", "6", "7");  
  
        // smembers : 추가된 데이터 조회  
        Set<String> setMembers = redisCommands.smembers(key);  
        System.out.println(key + " = " + setMembers);  
  
        // scard : 저장된 데이터 수 조회  
        Long scardResult = redisCommands.scard(key);  
        System.out.println("scardResult = " + scardResult);  
  
        // srem : Set의 멤버 제거  
        redisCommands.srem(key, "1", "2");  
        System.out.println(key + " = " + redisCommands.smembers(key));  
  
    };  
  
    CommandTemplate.commandAction(action);  
}

springboot_redis 22.png


sismember 메서드

@Test  
public void setBasic() {  
    CommandAction action = redisCommands -> {  
  
        String key = "lettuce:set";  
  
        // sadd : 데이터 추가  
        redisCommands.sadd(key, "1", "2", "3");  
        redisCommands.sadd(key, "3", "4", "5");  
        redisCommands.sadd(key, "5", "6", "7");  
  
        // smembers : 추가된 데이터 조회  
        Set<String> setMembers = redisCommands.smembers(key);  
        System.out.println(key + " = " + setMembers);  
  
        // scard : 저장된 데이터 수 조회  
        Long scardResult = redisCommands.scard(key);  
        System.out.println("scardResult = " + scardResult);  
  
        // srem : Set의 멤버 제거  
        redisCommands.srem(key, "1", "2");  
        System.out.println(key + " = " + redisCommands.smembers(key));  
  
        // sismember : set의 멤버 조회  
        Boolean sismember = redisCommands.sismember(key, "3");  
        System.out.println("sismember = " + sismember);  
  
    };  
  
    CommandTemplate.commandAction(action);  
}

springboot_redis 23.png


smove 메서드

@Test  
public void setBasic() {  
    CommandAction action = redisCommands -> {  
  
        String key = "lettuce:set";  
  
        // sadd : 데이터 추가  
        redisCommands.sadd(key, "1", "2", "3");  
        redisCommands.sadd(key, "3", "4", "5");  
        redisCommands.sadd(key, "5", "6", "7");  
  
        // smembers : 추가된 데이터 조회  
        Set<String> setMembers = redisCommands.smembers(key);  
        System.out.println(key + " = " + setMembers);  
  
        // scard : 저장된 데이터 수 조회  
        Long scardResult = redisCommands.scard(key);  
        System.out.println("scardResult = " + scardResult);  
  
        // srem : Set의 멤버 제거  
        redisCommands.srem(key, "1", "2");  
        System.out.println(key + " = " + redisCommands.smembers(key));  
  
        // sismember : set의 멤버 조회  
        Boolean sismember = redisCommands.sismember(key, "3");  
        System.out.println("sismember = " + sismember);  
  
        // smove : 특정 멤버를 다른 key로 이동  
        // 목적지에 key가 없으면 새로운 key를 생성하며 멤버 등록  
        String newKey = "lettuce:set_new";  
        redisCommands.smove(key, newKey, "3");  
  
        System.out.println(key + " = " + redisCommands.smembers(key));  
        System.out.println(newKey + " = " + redisCommands.smembers(newKey));  
  
    };  
  
    CommandTemplate.commandAction(action);  
}

springboot_redis 24.png


집합 연산

package myproject.redis.lettuce.set;  
  
import io.github.crewhub.redis.lettuce.CommandAction;  
import io.github.crewhub.redis.lettuce.CommandTemplate;  
import org.junit.jupiter.api.Test;  
  
import java.util.Set;  
  
public class RedisLettuceSinter {  
    String mainKey = "lettuce:set:";  
    String shinKey = "shin";  
    String jungKey = "jung";  
    String gangKey = "gang";  
  
    @Test  
    public void setAdvanced() {  
        CommandAction action = redisCommands -> {  
            // 멤버 저장  
            // sadd  
            redisCommands.sadd(shinKey, "1", "2", "3", "5");  
            redisCommands.sadd(jungKey, "3", "4", "5", "6");  
            redisCommands.sadd(gangKey, "4", "5", "7");  
  
            // smembers  
            System.out.println(shinKey + " = " +redisCommands.smembers(shinKey));  
            System.out.println(jungKey + " = " +redisCommands.smembers(jungKey));  
            System.out.println(gangKey + " = " +redisCommands.smembers(gangKey));  
        };  
  
        CommandTemplate.commandAction(action);  
    }  
}

!springboot_redis 25.png


교집합 sinter

@Test  
public void setAdvanced() {  
	CommandAction action = redisCommands -> {  
		// 멤버 저장  
		// sadd  
		redisCommands.sadd(shinKey, "1", "2", "3", "5");  
		redisCommands.sadd(jungKey, "3", "4", "5", "6");  
		redisCommands.sadd(gangKey, "4", "5", "7");  

		// smembers  
		System.out.println(shinKey + " = " +redisCommands.smembers(shinKey));  
		System.out.println(jungKey + " = " +redisCommands.smembers(jungKey));  
		System.out.println(gangKey + " = " +redisCommands.smembers(gangKey));  
		  
		// sinter : 교집합  
		Set<String> sinter = redisCommands.sinter(shinKey, jungKey, gangKey);  
		System.out.println("sinter = " + sinter);  
	};  

	CommandTemplate.commandAction(action);  
}  

!springboot_redis 26.png


합집합 sunion

@Test  
public void setAdvanced() {  
	CommandAction action = redisCommands -> {  
		// 멤버 저장  
		// sadd  
		redisCommands.sadd(shinKey, "1", "2", "3", "5");  
		redisCommands.sadd(jungKey, "3", "4", "5", "6");  
		redisCommands.sadd(gangKey, "4", "5", "7");  

		// smembers  
		System.out.println(shinKey + " = " +redisCommands.smembers(shinKey));  
		System.out.println(jungKey + " = " +redisCommands.smembers(jungKey));  
		System.out.println(gangKey + " = " +redisCommands.smembers(gangKey));  
		  
		// sinter : 교집합  
		Set<String> sinter = redisCommands.sinter(shinKey, jungKey, gangKey);  
		System.out.println("sinter = " + sinter);  
		  
		// sunion : 합집합  
		Set<String> sunion = redisCommands.sunion(shinKey, jungKey, gangKey);  
		System.out.println("sunion = " + sunion);  
	};  

	CommandTemplate.commandAction(action);  
}  

!springboot_redis 27.png


차집합 sdiff

@Test  
public void setAdvanced() {  
	CommandAction action = redisCommands -> {  
		// 멤버 저장  
		// sadd  
		redisCommands.sadd(shinKey, "1", "2", "3", "5");  
		redisCommands.sadd(jungKey, "3", "4", "5", "6");  
		redisCommands.sadd(gangKey, "4", "5", "7");  

		// smembers  
		System.out.println(shinKey + " = " +redisCommands.smembers(shinKey));  
		System.out.println(jungKey + " = " +redisCommands.smembers(jungKey));  
		System.out.println(gangKey + " = " +redisCommands.smembers(gangKey));  
		  
		// sinter : 교집합  
		Set<String> sinter = redisCommands.sinter(shinKey, jungKey, gangKey);  
		System.out.println("sinter = " + sinter);  
		  
		// sunion : 합집합  
		Set<String> sunion = redisCommands.sunion(shinKey, jungKey, gangKey);  
		System.out.println("sunion = " + sunion);  

		// sdiff : 차집합  
		// 첫 키에서 다른 키의 항목을 제외한 멤버 목록을 반환  
		Set<String> sdiff = redisCommands.sdiff(shinKey, jungKey, gangKey);  
		System.out.println("sdiff = " + sdiff);  
	};  

	CommandTemplate.commandAction(action);  
}  

springboot_redis 28.png