redis_release3
Redis Release Notes
레디스 서버 교육 신청 |
레디스 정기점검/기술지원 Redis Technical Support |
레디스 엔터프라이즈 서버 Redis Enterprise Server |
---|
Redis 3.2.x Release Notes
Redis 3.2.12 - 2018년 6월 13일(수) CRITICAL 필수
- 이것은 4.0.10에 발표된 EVAL 관련 보안 이슈와 몇 가지 버그를 수정해서 3.2 사용자를 위한 버전입니다.
- EVAL 명령(Lua scripting engine) 관련 보안 이슈 수정: 자세한 내용은 4.0.10을 보세요.
- SCAN 명령이 키를 빠뜨릴 수 있는 버그 수정
- AOF fsync = always 관련 버그 수정: 4.0.9에 적용된 것입니다.
Redis 3.2.11 - 2017년 9월 21일(목) HIGH 높음
- 종료(Shutdown)하기 전에 AOF를 flush하도록 수정했습니다.
Redis 3.2.10 - 2017년 7월 28일(금) MODERATE 보통
- 필수는 아니지만 업그레이드를 권장합니다.
- INFO server.stat_net_output_bytes 계산 오류 수정
- SET 명령에 EX/PX 옵션을 사용했을 때 AOF에 그대로(상대적 시간)으로 기록되는 오류를 절대 시각으로 기록하도록 수정했습니다. » AOF를 기록되는 명령
- CLIENT PAUSE 버그 수정
- GEORADIUS 기능 추가
- HyperLogLog 버그 수정 PFADD PFCOUNT HyperLogLog 설명
- Redis Cluster 버그 수정
Redis 3.2.9 - 2017년 5월 17일(월) LOW 낮음
- 몇 가지 작은 버그를 수정했습니다.
Redis 3.2.8 - 2017년 2월 12일(일) CRITICAL 필수
- Jemalloc 4.4.0이 특정 조건에서 데드락(Deadlock)을 발생시킬 수 있어서 이전 버전(4.0)으로 되돌렸습니다. » 관련 글
- MIGRATE: 소켓(socket) 오류 후 서버가 크레시(crash)되는 버그 수정 » 관련 글
Redis 3.2.7 - 2017년 1월 31일(화) HIGH 높음
- Redis-trib.rb로 reshard시 Expire time 설정 오류로 expire time이 설정되지 않은
키가 삭제될 수 있는 버그를 수정했습니다.
Redis Cluster Reshard와 관련있으므로 Redis Cluster 사용자는 반드시 업그레이드하시기 바랍니다.
임시 방편으로 redis-trib.rb 소스에서 MigrateDefaultPipeline = 10을 1로 바꾸어서 사용하세요. - 보안: "Cross Protocol Scripting" 공격인 'host:'와 'post' 명령(?)이 들어오면 securityWarningCommand() 이 실행되어 서버 로그에 "# Possible SECURITY ATTACK detected. It looks like somebody is sending POST or Host: commands to Redis. This is likely due t o an attacker attempting to use Cross Protocol Scripting to compromise your Redis instance. Connection aborted." 이런 메시지를 남기고 연결을 끊는 기능을 추가했습니다. » 관련 글
- ZipList 버그 수정:
LINSERT
같이 리스트 중간에 데이터를 조작하는 명령과 관련있습니다.
» ZipList 내부 구조 - Jemalloc을 4.0에서 4.4.0으로 업그레이드했습니다. 4.4.0은 메모리 사용과 회수(reclaim) 기능이 개선되었습니다. » Jemalloc
Redis 3.2.6 - 2016년 12월 6일(화) MODERATE 보통
Redis 3.2.5 - 2016년 10월 26일(수) LOW 낮음
- 이 릴리즈는 단지 컴파일 오류만 수정한 것입니다.
Redis 3.2.4 - 2016년 9월 26일(월) CRITICAL 필수
- 보안 취약점을 수정했습니다. 자세한 내용은 여기를 보세요.
- TCP 바인딩 버그 수정
- Crash Report 개선
- redis-trib.rb: 새 클러스터 생성 후 관련 정보를 보여주도록 수정
Redis 3.2.3 - 2016년 8월 2일(화) MODERATE 보통
- AOF Rewrite가 진행중인 동안 복제를 위한 bgsave가 지연되는 부분 수정
- redis-cli history 파일 관련 보안 이슈 수정
Redis 3.2.2 - 2016년 7월 28일(목) MODERATE 보통
- LSET 명령 버그 수정
- Sentinel 이 여러 마스터를 모니터링 할 때 주소(address) 업데이트 후에 Crash 될 수 있는 버그 수정
- GEORADIUS 버그 수정
- 클론(슬레이브)는 slave-announce-ip, slave-announce-port를 사용해서 Docker와 NAT를 지원합니다.
- RDB check utlity가 Redis의 일부가 되었습니다.
- CONFIG GET 명령이 대소문자를 구분하지 않도록 수정되었습니다.
Redis 3.2.1 - 2016년 6월 17일(금) HIGH 높음
- Sentinel 사용자 필수 업그레이드: Sentinel 연결 공유(connection sharing/InstanceLink) 관련 버그(old master를 인식하지 못하는) 수정 -» 이 버그는 3.2.0에서 연결 공유 기능을 추가하면서 발생했습니다. 따라서 3.0.x 는 이런 버그가 발생하지 않습니다.
- tcp-keepalive 파라미터 default 값이 0에서 300으로 변경되었습니다. 즉 TCP keep alive가 활성화된 것입니다.
- 키 Access time만 갱신하는 TOUCH 명령 추가, 이제 TTL, TYPE 명령은 Access time을 변경하지 않습니다.
- CONFIG SET list-max-ziplist-size 명령에서 음수를 지정할 수 없습니다. redis.conf파일에서는 가능합니다.
- BITFIELD 버그 수정
- GEORADIUS 명령 버그 수정
- RESTORE 이전 버전에서 만들어진 dump을 읽을 수 있도록 수정
- BITCOUNT: start와 end 둘 다 음수이고 start > end 이면 널을 리턴하도록 수정
Redis 3.2.0 - 2016년 5월 6일(금) HIGH 높음
- 3.2의 가장 큰 변화로 List Type의 내부 저장 방식을 메모리를 많이 절약할 수 있는 Quicklist로 바꾸었다.
관련해서 list-max-ziplist-entries, list-max-ziplist-value 파라미터가 없어지고
list-max-ziplist-size, list-compress-depth 파라미터가 추가되었다.
» 추가된 파라미터와 Quicklist 내부 구조는 여기를 보세요. - 보안강화를 위해서 PROTECTED-MODE 파라미터가 추가되었고 BIND 파라미터가 활성화 되었다. 디폴트 그대로 사용하면 원격접속이 되지 않으므로 BIND에 IP를 추가해야 한다. » 관련 글
- BITFIELD 명령 추가
- CONFIG GET AOF나 RDB를 로딩중일 때도 CONFIG GET 명령을 실행할 수 있도록 수정했습니다.
- DEBUG 명령에 새 기능 추가
- restart: 정상적으로 서버를 종료하고 재시작한다.
- crash-and-recover: 비정상적으로 서버를 죽이고 재시작한다.
- lua-always-replicate-commands: 활성화/비활성화한다.
- structsize: 레디스 핵심 C 구조체 길이(바이트)를 보여준다.
- htstats: 데이터베이스 키 통계정보를 보여준다.
- jemalloc info: 메모리 할당 통계정보를 보여준다.
- jemalloc purge: 사용하지 않는 메모리를 해제한다.
- help: 도움말을 보여준다.
- Redis-cli: 명령을 입력하면 옵션을 보여주는 기능이 추가되었다.
- GEORADIUS 명령에 STORE, STOREDIST 옵션 추가
-
CLUSTER SLOTS 명령의 출력에 노드 ID를 추가했습니다.
프로그램 내에서는 Cluster Nodes 보다 Cluster Slots API를 사용하세요. Cluster Nodes는 향후 출력 내용이 자주 변경될 수 있습니다. - Nanosecond 변환 오류 수정: 1 microsecond = 10000(10e3) -» 1000(1e3) nanoseconds
- Redis-cli 종료 시 Command history file을 지우지 않고 그대로 두어 다음 연결 때 사용할 수 있도록 수정했습니다.
- redis-trib.rb 버그 수정
- INFO commandstats 수정: GEOADD 명령을 실행하면 내부적으로 ZADD가 실행되어 commandstats 리포트에 ZADD가 표시되었던 것을 GEOADD가 표시되도록 수정했습니다.
- Redis Cluster 개선: 마스터 A의 모든 슬롯을 마스터 B에게 보내면 A의 클론(슬레이브) C는 B의 클론으로 변경된다.
여기서 B에게 주었던 슬롯을 A가 다시 가져오면 클론 C는 원래대로 A의 클론이 된다.
» 관련 글 - 초기 상태
Master 6001 (Slots 0-5460) -> Slave 6004
Master 6002 (Slots 5461-10922) -> Slave 6005
Master 6003 (Slots 10923-16383) -> Slave 6006 - Step 1: Master 6001의 모든 슬롯을 6002로 보냄(reshard) -> 6004가 6002의 슬레이브가 됨
Master 6001 -> No slaves
Master 6002 (Slots 0-10922) -> Slave 6005
-> Slave 6004
Master 6003 (Slots 10923-16383) -> Slave 6006 - Step 2: 수정 전 6002의 슬롯을 원래대로 6001에게 보냄 -> 슬레이브 6004는 그대로 6002의 슬레이브로 남아 있음.
Master 6001 (Slots 0-5460) -> No slaves
Master 6002 (Slots 5461-10922) -> Slave 6005
-> Slave 6004
Master 6003 (Slots 10923-16383) -> Slave 6006 - Step 2: 수정 후 6002의 슬롯을 원래대로 6001에게 보냄 -> 슬레이브 6004가 6001의 슬레이브로 변경됨.
Master 6001 (Slots 0-5460) -> Slave 6004
Master 6002 (Slots 5461-10922) -> Slave 6005
Master 6003 (Slots 10923-16383) -> Slave 6006 - 만약 Step 1에서 슬레이브 6005가 다운되어 6002의 슬레이브가 6004 하나만 있는 상태이면 6002의 슬롯 일부를 6001로 보내(reshard)도 6004는 6002의 슬레이브로 남아있다.
Redis 3.2.0-RC3 - 2016년 1월 28일(목) MODERATE 보통
- INFO avg_ttl 개선
- Sentinel 개선
- Redis Cluster: Cluster Bus를 통한 address 업데이트가 개선되어 불필요한 핸드쉐이크가 발생하지 않도록 수정되었습니다.
Redis 3.2.0-RC2 - 2016년 1월 25일(월) MODERATE 보통
- MIGRATE: 멀키 관련 버그 수정
- Redis Cluster 버그 수정
- redis-trib.rb 기능 개선
- PROTECTED-MODE: 보안 관련 기능 추가
Redis 3.2.0-RC1 - 2015년 12월 23일(수)
- List Type의 내부 저장 방식을 새로운 Quicklist로 바꾸었다. 압축기능이 있어서 메모리를 많이 절약할 수 있고 RDB 파일 사이즈도 줄어들었다. 그리고 큰 List key의 노드간 이동(migrate)도 빨라졌다. » Quicklist 내부 구조
- 지리적 인덱싱을 지원하기 위한 새 명령들 추가: GEOADD, GEODIST, GEOHASH, GEOPOS, GEORADIUS, GEORADIUSBYMEMBER
- Lua debugger » 설명 동영상 by Salvatore
- 문자열 처리를 위한 내부 문자열 데이터 구조 SDS(Simple Dynamic Strings) 개선
- 클론(슬레이브) 노드에서 만료된(expired) 키에 대한 처리 개선
- SPOP count 옵션 추가
- RDB 파일 포멧 변경: 생성일자, 버전 등을 추가
- HSTRLEN 명령 추가
- CLIENT REPLY 명령 추가
- CLUSTER NODES 명령 속도 개선
- CLIENT KILL TYPE MASTER 옵션 추가
- Jemalloc 4.0.3으로 업데이트
- Crash report 개선
- Pipelined MIGRATE 명령으로 10배 빨라졌다.
- Sentinel 연결 공유(connection sharing/InstanceLink) 기능 추가: 모니터하는 노드들에 대한 정보를 공유하므로써 내부적으로 관리부담이 줄어들었다.
- SENTINEL INFO-CACHE 명령 추가
- redis.conf 파일에서 BIND 파라미터 활성화
Redis 3.0.x Release Notes
Redis 3.0.7 - 2016년 1월 25일(월) MODERATE 보통
- 중요한 Cluster 버그를 수정했으므로 Cluster 사용자는 업그레이드하세요.
- MIGRATE multiple keys 관련 버그 수정
- Redis Cluster node crash 버그 수정: node->slaveof 포인터 처리 오류
- Redis-trib rebalance weight 관련 수정
- Redis-trib fix 명령을 지원하기 위해 CLUSTER BUMPEPOCH 명령 추가
- 너무 깊은 중첩된 객체를 프린트할 때 Lua 디버거 crash 관련 수정
- Redis-cli에서 SCRIPT DEBUG 명령을 사용하여 디버깅 모드로 전환할 수 있습니다.
- PROTECTED-MODE 구현: 아직 redis.conf에 protected-mode 파라미터 추가되어 있지는 않다.
Redis 3.0.6 - 2015년 12월 18일(금) MODERATE 보통
- Cluster에 중요한 개선을 했으므로 Cluster 사용자는 업그레이드하세요.
- Lua 보안 이슈 수정
- [FIX] Redis Cluster Fail/Migrate 관련 부분 수정 자세한 내용은 이슈 #2924를 참조하세요.
- processCommand() 경쟁 상태(race condition) 수정 자세한 내용은 이슈 #2948 참조하세요.
- MIGRATE multiple-keys pipelined mode 지원: 이 모드는 Redis Cluster에서 Reshard와 Rebalancing에 이용됩니다.
- Redis-trib rebalance 기능 추가
- Redis-trib.rb info 명령 추가
Redis 3.0.5 - 2015년 10월 15일(목) MODERATE 보통
- MOVE 명령이 TTL(만료 시간) 정보도 같이 이동하도록 수정
- Redis-cli --pipe mode 버그 수정
- Redis-trib fix 수정
- Redis-trib import --copy 와 --replace option 추가
Redis 3.0.4 - 2015년 9월 8일(화) HIGH 높음
- 부분 동기화(PSYNC)와 Diskless 복제 버그 수정
- 복제 불일치 버그 수정 자세한 내용은 이슈 #2694를 참조하세요.
- Redis-cli --scan 관련 버그 수정
- Sentinel 관련 버그 수정 자세한 내용은 여기를 참조하세요.
Redis 3.0.3 - 2015년 7월 17일(금) LOW 낮음
- 클라이언트가 수천개일 때 BLPOP 같은 blocking 명령 관련 버그 수정
- MIGRATE "creating socket: Invalid argument" 버그 수정 이슈 #2609 이슈 #2612
- ZADD 버그 수정
- CONFIG RESETSTATS 명령에서 aof_delayed_fsync를 reset 하도록 수정
- PFCOUNT 버그 수정
Redis 3.0.2 - 2015년 6월 4일(목) HIGH 높음
- 주요 보안 문제 수정 » 관련 자료
- ZADD 명령에 NX, XX, CH, INCR 옵션 추가
- SENITNEL CKQUORUM, FLUSHCONFIG 수정
Redis 3.0.1 - 2015년 5월 5일(화) MODERATE 보통
- SENTINEL 메모리 누수 수정(hiredis 수정)
- Lua 출력 버퍼 관련 수정
Redis 3.0.0 - 2015년 5월 1일(금) 3.0의 새로운 기능들
- Redis 3.0의 가장 큰 변화는 Redis Cluster 도입입니다.
- "Embedded string" 도입으로 CPU Cache miss가 줄어들어 특정 조건에서 속도가 크게 향상되었습니다.
- AOF Rewrite 에서 "마지막 쓰기"의 양을 줄여서 대기 시간을 최소화했습니다.
- 키 퇴출 LRU 알고리즘을 크게 개선했습니다.
- WAIT 명령 추가
- MIGRATE COPY, REPLACE 옵션 추가했고, Connection caching를 이용해서 키 마이그레이션 속도 향상
- CLIENT PAUSE 명령 추가
- BITCOUNT 성능 향상
- CONFIG SET 단위 허용
- INCR 성능 향상
- Log 포멧 약간 변경
- Diskless Replication 수정
Redis 3.0.0-RC6(2.9.106) - 2015년 3월 24일(화)
- Blocking operation 관련된 복제 버그 수정 자세한 내용은 이슈 #2473를 참조하세요.
- Redis Cluster
- Redis Cluster 수동 장애 초치 관련 버그 수정
- Redis Cluster에서 Lua 스크립트 복제 버그 수정
- CLUSTER FAILOVER 명령에 TAKEOVER 옵션 추가
Redis 3.0.0-RC5(2.9.105) - 2015년 3월 20일(금)
- LATENCY 명령 버그 수정
- CONFIG SET activerehashing 지원
- Redis-cli --latency-dist 수정
- MIGRATE에서 중복 select 수정
- Redis Cluster
- CLUSTER REPLICATE 개선
- Redis Cluster 버그 수정
- CLUSTER MYID 명령 추가
Redis 3.0.0-RC4(2.9.104) - 2015년 2월 13일(금)
- LRU 퇴출(eviction) 관련 수정
- Redis-cli CSV output NIL 관련 수정
- 키 rehashing
동안 LRU eviction이 발생했을 때 응답시간이 늦어지는 버그 수정
이 버그는 2.8에서는 발생하지 않고 3.0에서 LRU 알고리즘을 수정하면서 생긴것입니다. - Redis-cli --latency-dist 기능 추가
- Redis-cli --lru-test 기능 추가
- Redis-cli --stat기능 추가: Redis 서버가 데이터를 loading할 때 'child' 항목에 'LOAD'로 보여준다.
- CONFIG SET 단위 지원
Redis 3.0.0-RC3(2.9.103) - 2015년 1월 30일(금)
- AOF: Child process가 pipe를 통해 Parent process에게 다을 수 없을 때 발생하는 문제(segfaults) 수정
- Lua 스크립트 엔진 관련 수정
- Redis Cluster
- 내부 노드 처리 관련 수정
- 메모리 누수, 이중 해제(free)관련 버그 수정
- /dev/urandom 보다 가벼운 unique ID 생성 방법 적용
- 장애 감지 및 클러스터 정보 전파 속도 향상(개선)
- CLUSTER count-failure-reports 명령 추가
Redis 3.0.0-RC2(2.9.102) - 2015년 1월 13일(화)
- Diskless replication backport
- Lua backport
- Transparent Huge Pages 경고 추가
- PUBLISH cluster bus message count field 수정
Redis 3.0.0-RC1(2.9.101) - 2014년 10월 9일(목)
- Foreground Redis Server에 Ctrl-C를 했을 때 정상적으로 SHUTDOWN 되도록 수정, 기타 여러가지 작은 수정 자세한 내용은 이슈 #1906을 참조하세요.
- SAVE 명령이 AOF나 클론(슬레이브)로 전송되지 않도록 수정
- Redis-check-aof utility를 실행하지 않고 잘렸으나(truncated) 손상되지 않은(not corrupted) AOF 파일을 load 할 수 있도록 redis.conf에 aof-load-truncated 파라미터 추가, 디폴트 값 yes
- DEBUG POPULATE 옵션 추가
- INCR 개선
- Redis Cluster
- Minority 파트 감지(detect) 로직 개선
- 베타(beta) 버전에서 안정적(stable)인 버전으로 승격했습니다.
- Pub/Sub 추가
- Sentinel
- 메모리 누수(leak)와 치명적인 버그 수정
- NAT(Network Address Translation) 네트워크 환경에서 사용할 수 있도록 sentinel.conf에 sentinel announce-ip , sentinel announce-port 파라미터를 추가했다.
Redis 3.0.0-Beta 8(2.9.57) - 2014년 7월 29일(화)
- Solaris 컴파일 이슈 수정
- Maxmemory 정책이 LRU 기반이 아닌 경우 정수 객체 공유를 허용합니다.
- Latency 명령 개선
- AOF rewrite 개선
- ZUNIONSTORE 속도 개선
- 빠른 ll2string() 구현(Util.c) » 관련 자료
- CLUSTER RESET 명령 추가
- Redis-trib reshard를 비 대화식(non-interactive way)을 할 수 있도록 했다.
Redis 3.0.0-Beta 7(2.9.56) - 2014년 6월 30일(월)
- COMMAND 명령 추가
- Jemalloc 3.6.0 적용
- CLUSTER NODES: 노드 주소를 업데이트 할 때 NOADDR 플래그를 지우도록 수정
- CLUSTER SLOTS: 클러스터 클라이언트가 클러스터 정보를 얻는 API, CLUSTER NODES의 출력은 향후 변경될 수 있으므로 CLUSTER SLOTS을 사용하세요.
- SENTINEL: 몇 가지 버그가 수정, 개선되었고 ROLE 명령이 추가되었습니다.
- 초기 AOF가 쓰여지고 있다면 SHUTDOWN이 최소되도록 수정
Redis 3.0.0-Beta 6(2.9.55) - 2014년 6월 9일(월)
- Software watchdog 버그 수정
- Lua 스크립트 개선
- Redis.conf에 있는 min-slaves-* 파라미터 관련 심각한 버그 수정
- Beta 3에 도입된 CLUSTER SET-CONFIG-EPOCH 심각한 버그 수정
Redis 3.0.0-Beta 5(2.9.54) - 2014년 5월 26일(월)
- Redis Cluster 관련 2 가지 버그 수정
Redis 3.0.0-Beta 4(2.9.53) - 2014년 5월 23일(금)
- Lua 스크립트 엔진 성능 개선
- 현재(current) 노드의 역할을 표시하기 위해 로그 포멧을 약간 변경했다.
- HyperLogLog cache flag 불필요한 계산 부분 수정
- Redis Cluster
- Redis-trib Import 기능 추가: 독립형(standalone) Redis 인스턴스에서 데이터를 Cluster 노드로 가져오는 기능
- Redis-trib Fix 기능 추가: 오픈된(migrating/importing 예약되어있고 처리되지 않은) 슬롯을 수정
- CLUSTER FAILOVER FORCE 구현
- CLUSTER RESET 구현
- CLUSTER MEET 유효하지 않은 주소(ip port)에 대한 오류 메시지 개선
- cluster-slave-validity-factor 파라미터 추가, Config Set으로 변경 가능
- 대량 클러스터 노드를 수략(accept)할 수 있도록 개선
- 수동 장애조치(manual failover) 시에는 마스터와 클론(슬레이브)간 연결 단절 시간(data_age)을 체크하지 않도록 수정, 자동 장애조치 시에는 일정 시간 이상 단절된 클론은 후보에서 제외된다.
- Sentinel
- 옵저버(observer) 서버가 다른 센티널로 부터 새 마스터 정보를 받는 이벤트(+config-update-from)를 추가했고 로그를 남기도록 수정
- 장애조치가 다시 시작되면 로그를 남기도록 수정 » 장애조치와 리더 선출 관련 정보
- Sentinel.conf 에 working directory 파라미터 추가 "dir /tmp"
Redis 3.0.0-Beta 3(2.9.52) - 2014년 5월 5일(월)
- HyperLogLog: 새 Data Structure
- LRU 알고리즘(algorithm)의 정확도가 크게 향상되었다.
- Redis Cluster
- CLUSTER SET-CONFIG-EPOCH 명령 추가, 클러스터 생성 시 새 epoch을 다른 노드에 빠르게 할당하기 위해서 구현
- CLUSTER NODES 출력 오류 수정
- Sentinel
- Redis 인스턴스를 통하지 않고, Sentinel 인스턴스간 메시지를 보낼 수 있도록 수정
- 중요 상태 정보를 디스크에 저장하기 때문에 Crash-Recovery 상황에서도 안전하도록 수정
- CLIENT SETNAME을 사용해서 Redis 서버에 접속한 센티널 클라이언트 이름을 설정하도록 했다. 따라서 다른 클라이언트들이 CLIENT LIST 명령으로 센티널 클라이언트를 확인할 수 있다.
- 실패 감지(failure detection) 개선
Redis 3.0.0-Beta 2(2.9.51) - 2014년 3월 11일(화)
- 복제(replication) 중 링크가 끊기는 버그 수정, 이 버그로 불필요한 재 동기화가 발생하거나 무한 루프가 발생할 수 있었습니다.
- AOF appendfsync 가 'everysec'나 'no'인 상태에서 AOF fsync 에러( 예, 디스크 공간이 없을 경우)가 발생해도 Redis 서버는 다운되지 않고 계속 실행되도록 수정했다. 단 데이터베이스는 write 명령을 수행할 수 없는 read-only 모드로 변경된다. 디스크 문제가 해결되어 다시 AOF fsync를 할 수 있으면 데이터베이스도 write 모드로 변경된다.
- Config file Path 오류 수정, 이 버그는 redis.conf 파일안에 'dir' 파라미터가 있을 경우에 발생했습니다.
- Redis-cli: SYNC, PSYNC를 호출하면 자동으로 슬레이브 모드(--slave mode)로 전환되도록 수정
- BITCOUNT CPU 아키텍처 관련 개선
- EVALSHA 스크립트 캐시 버그를 수정했습니다. 특정 조건에서 실행 된 스크립트가 AOF/슬레이브로 올바르게 전파되지 않을 수 있었습니다. 자세한 내용은 이슈 #1549를 참조하세요.
- MONITOR 모드에서 SLOWLOG 시간 계산 버그 수정
- Redis-cli --bigkeys 구현에 RANDOMKEY 대신 SCAN을 사용하도록 수정했고 Pipelining 사용하도록 해서 훨신 빨라졌습니다.
- Redis-cli --intrinsic-latency mode 구현: kernel/hypervisor로 인한 시스템 대기 시간을 측정할 수 있다.
- CONFIG REWRITE를 실행하면 로그를 남기도록 수정
- Redis Cluster
- 클러스터 노드가 redis.conf bind 파라미터 IP를 사용하도록 수정
- 'Importing' 슬롯을 CLUSTER SETSLOT NODE 명령으로 확정하면 특별한 경우 configEpoch을 0으로 증가시키도록 수정
- Cluster Bus 포트는 항상 base port + 10000을 사용하므로 해당 포트를 반드시 오픈해야 한다.
- ZUNIONSTORE, ZINTERSTORE, SORT: 키 추출 알고리즘 수정
- CLUSTER-NODE-TIMEOUT 시간이 매우 적을 때(수 밀리초)도 장애 조치가 안정적으로 실행되도록 개선
- 클러스터 노드에서는 SORT 명령의 BY/GET 옵션을 사용하지 못하도록 수정
- 마스터에서 클론 노드로 역할이 바뀔 때 'importing'/'migrating' 상태를 초기화하도록 수정
- 지정한 키들이 모두 같은 슬롯안에 있을 때 멀티 키 오퍼레이션을 허용
- Redis-trib call 명령 추가
- Sentinel
- Sentinel event 추가: SENTINEL MONITOR/REMOVE +/-monitor, SENTINEL SET +set
- SHUTDOWN 명령 도입
- "IDONTKNOW" 에러 메시지 삭제
Redis 3.0.0-Beta 1(2.9.50) - 2014년 2월 11일(화)
- 이전 버전인 2.8에서 3.0이 되면서 바뀐 점
- 로그 포멧 변경: 각 라인 앞에 들어가는 PID 형식이 '[pid]' 에서 'pid:?'로 변경되었습니다.
pid: process id
?: M -> Master, S -> Slave, C -> Child process(C로 표시될 때는 pid도 변경됨), X -> Sentinel - maxmemory-policy 파라미터의 기본값이 'volatile-lru' 에서 'noeviction'으로 변경되었습니다.
- 2014년 2월 11일(화) Beta 1 부터 시작된 업그레이드 작업은 15번의 업데이트 끝에 15개월 후인 2015년 5월 1일(금)에 정식 3.0이 나왔습니다. 가장 큰 변화는 Redis Cluster 구현입니다.
<< Release Notes 4 | Release Notes 3 | Release Notes 2 >> |
---|
Email
답글이 올라오면 이메일로 알려드리겠습니다.