redis

· TIL
문제 ubuntu:~$ sudo docker logs redis*** FATAL CONFIG FILE ERROR (Redis 7.4.0) ***Reading the configuration file, at line 1133>>> 'maxmemory 1.5gb'argument must be a memory valuemaxmemory 설정을 소숫점으로 하니 실행이 되지 않았다.  해결 // redis.confmaxmemory 1500mb// ...MB 단위로 설정해주어 해결했다.
· TIL
문제localhost:63790> subscribe home1) "subscribe"2) "home"3) (integer) 11) "message"2) "home"3) "{\"messageId\":\"abcde\",\"sender\":\"1234\",\"message\":\"abcde\"}"1) "message"2) "home"3) "{\"messageId\":\"abcde\",\"sender\":\"1234\",\"message\":\"\xed\x95\x98\xec\x9d\xb4\"}"1) "message"2) "home"3) "{\"messageId\":\"abcde\",\"sender\":\"1234\",\"message\":\"\xea\xb0\x80\"}" 레디스로 pub/sub 테스트를 해보던 ..
· TIL
문제도커로 레디스를 띄울 때, 기존 데이터나 설정을 유지하고 싶었다. 해결 도커로 레디스를 띄울 때, 볼륨을 통해 저장 공간을 공유하고, redis.conf 라는 레디스 설정 파일도 공유하여 레디스 컨테이너를 띄울 때 데이터를 유지하도록 해결했다. 과정 우선 EC2 Ubuntu24.04 버전에 도커를 띄운 상황에서 설명하겠다.  sudo docker volume create redis-data우선 redis-data 라고 하는 볼륨을 만들어준다.  $ sudo docker volume inspect redis-data[ { "CreatedAt": "2024-08-05T20:43:25+09:00", "Driver": "local", "Labels": null, ..
· TIL
주제 예전에 레디스 해킹을 당해놓고서 아직도 정신 못 차리고 비밀번호 설정을 귀찮아서 안 해두다가 이번에 제대로 알아두기로 했다.  우선 도커로 레디스 설치부터 암호 설정, 암호로 접속하는 방법까지 다뤄보기로.  레디스 도커 설치sudo docker run -d \ --name redis-ex \ -p 63790:6379 \ -e REDIS_ARGS="--requirepass 1234" \ redis/redis-stack-server위는 레디스 스택을 포함하는 redis-stack-server 이미지이고 sudo docker run -d \ --name redis-ex \ -p 63790:6379 \ redis --requirepass 1234위는 그냥 레디스일 때이다. 각각 비밀번호를 ..
@DisplayName("Hash 타입 테스트")@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)public class HashTypeTest { @Autowired RedisTemplate redisTemplate; HashOperations hashOperations; @BeforeEach void setUp() { hashOperations = redisTemplate.opsForHash(); redisTemplate.getConnectionFactory().getConnection().serverCommands().flushAll(); // 매 테스트 시 초기화..
무수한 에러를 만났다. 첫 부분만 보면,  org.springframework.data.redis.serializer.SerializationException: Cannot serializeCaused by: org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializerCaused by: java.lang.IllegalArgumentException: DefaultSerializer requires a Serializable payload but received an object of type [ex.ops.hash.HashClass]Failed..
package ex.ops;import static org.assertj.core.api.Assertions.assertThat;import java.util.List;import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.data.redis.connection.RedisListCommands...
레디스에서 유일하게 키와 값이 1:1로 매칭되는 string 타입에 대한 몇몇 명령어에 대해서, Spring Data Redis 에서 제공하는 메서드와 이름이 달라서 이에 대해 테스트 코드를 작성해보았다.  set, get 은 그대로, set NX 은 setIfAbsent, set XX 은 setIfPresent, incr 은 increment, mset, mget 은 multiSet, multiGet 으로 매칭이 된다.  @DisplayName("String 타입 테스트")@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)public class StringTypeTest { @Autowired private ..
레디스를 이용하다보면 NX와 XX 명령어가 있다.  set a b 명령어를 입력한다고 할 때,  NX는 키가 존재하지 않을 때 set 하고, XX는 키가 존재할 때 set 한다. 근데 이게 무슨 줄임말인지 짧은 영어 지식으론 몰라서 찾아보니, NX는 Not eXist, XX는 그냥 eXist 인데 길이 맞추려고 한 것 같다.. 공식 문서에서도 무엇의 준말인지 안 알려주고 아래와 같이 나와있다.  NX -- Only set the key if it does not already exist.XX -- Only set the key if it already exists. https://redis.io/docs/latest/commands/set/ SETSets the string value of a key, ..
yunjae62
'redis' 태그의 글 목록