반응형 DATA/Redis14 Redis 문제 해결 - WRONGTYPE Operation against a key holding the wrong kind of value 트러블 슈팅 WRONGTYPE Operation against a key holding the wrong kind of value 원인 레디스의 자료구조에 맞지 않는 명령어를 수행하려할 때 발생하는 에러였다. 내가 SortedSets 자료구조로 저장된 레디스 데이터를 GET으로 가져오려하니 발생했던 것. 올바른 조회 1. String → GET 2. Hash → HGETALL 3. Lists → Irange 4. Sets → smembers 5. Sorted Sets → ZRANGE 2022. 12. 29. Redis 운영모드 - Sentinel, Cluster 레디스는 단일 인스턴스만으로도 충분히 운영이 가능하지만, 메모리 한계를 초과하는 데이터를 저장하고 싶거나, failover에 대한 처리를 통해 High Availibilty를 보장하려면 센티널이나 클러스터 등의 운영모드를 사용해야한다. 1) Sentinel HA 지원 master/slave replication 여러개의 독립적인 sentinel process들이 서로 협동하여 운영된다 안정적인 운영을 위해서는최소 3개 이상의 sentinel instance 필요, 홀수 권장 센티널 기본 포트: TCP 26379 One master - multi slave 제공하는 기능 모니터링 알림 자동 failover master에 문제가 감지되면 자동으로 failover 수행 (과반수 vote) failover가 되.. 2022. 12. 29. Redis Persistence - RDB, AOF 장단점 Redis는 file로 남겨서 메모리 데이터가 사라졌을 때 복구할 수 있는 방법을 제공한다. 1) RDB (Redis DB) 주기적으로 특정 시점의 snapshot을 남긴다. 최소 5분 이상의 간격으로 세팅해야 한다. redis.conf 의 save 파라미터로 지정한다 ex) save 900 1 : 900초 동안 1번 이상 key 변경 발생 시 저장 save 조건은 여러개 지정 가능하다. 하나라도 만족하면 수행한다. 장점 성능 손해를 최소화 backup파일이 AOF에 비해 작고 복구 쉽다 restart 시간이 빠르다. 단점 마지막으로 snapshot이 남은 시점과 다음 주기 사이에 장애가 발생한다면 cache 데이터가 유실될 수 있다. 디스크에 남기는 child process를 만들기 위해 fork()를.. 2022. 12. 28. Redis key 설계 시 고려해야할 점, 운영 가이드 Redis key 설계 시 고려해야할 점 1. Avoid long key key 크기는 1K(1024 bytes)가 넘지 않도록 한다. key의 길이가 크다면 메모리를 더 많이 차지하며, key 비교 연산에서도 비용이 많이 든다. key의 크기가 크다면, hashing을 통해 unique함을 보장하면서 줄이면 된다. ex) SHA1, SHA256 등 2. Avoid too short key key 사이즈가 크지도 않은데 일부러 축약어 등으로 과도하게 줄이는 것은 바람직하지 않다. 줄인 key의 의미를 파악할 수 없는 경우에는 개발 과정에서 버그를 야기할 수 있다. Redis 클러스터 이용 시 분산이 골고루 이어지지 않고 한 노드에 요청이 몰릴 수 있기 떄문에 key의 분산을 위해 다른 키도 이와같이 설계.. 2022. 12. 27. Cache DB란? 관련 용어 및 종류 (Memcached, Redis) Cache DB 란? 데이터를 빠르게 조회할 수 있는 곳. 원본 데이터는 다른 곳에 있고 그것으로부터 copy된 데이터가 Cache에 존재한다. 일반 DB는 디스크IO를 기반으로 동작하고 효율을 높이기 위해 memory를 사용한다. in-memory DB는 모든 데이터를 메모리에서 다루기 때문에 조회속도가 빠르다. Cache hit 조회하는 데이터를 cache에서 찾을 때 Cache miss 조회하는 데이터를 cache에서 찾지 못했을 때 Hit ratio(rate) access 시도 횟수 대비 cache hit의 비율 -> 이 값이 높아야 캐시가 Cost-Effective 하다. Cache 주의점 Cache는 임시 데이터이다. 원본이 다른 곳에 있어야 하고, 언제든 유실될 수 있음을 고려하고 시스템을 .. 2022. 12. 26. 이전 1 2 다음 728x90 반응형