redis_release
Redis Release Notes
![]() |
![]() Redis Technical Support |
![]() Redis Enterprise Server |
---|
Redis Release Notes
Redis 4.0.9 - 2018년 3월 26일(월) CRITICAL 필수
- AOF를 'always'로 설정하고 사용하는 사용자는 필수 업그레이드입니다. » AOF 설정 관련 정보 » 전반적인 Persistence 관련 정보
- Latency Monitor 관련 버그 수정
Redis 4.0.8 - 2018년 2월 2일(금) CRITICAL 필수
- Redis Cluster 사용자는 필수 업그레이드입니다. » Redis Cluster 관련 정보
Redis 4.0.7 - 2018년 1월 24일(수) MODERATE 보통
Redis 4.0.6 - 2017년 12월 4일(월) CRITICAL 필수
- 4.0.x 사용자, 특히 4.0.4, 4.0.5 사용자는 필수 업그레이드입니다.
- 주요 수정 내용 관련 정보 » PSYNC2(부분 동기화) » Quicklists
Redis 4.0.5 - 2017년 12월 1일(금) CRITICAL 필수
- Replication PSYNC2(부분 동기화) 관련 수정, 그러나 더 많은 문제가 발견되어 바로 4.0.6으로 업그레이드 되었습니다.
Redis 4.0.4 - 2017년 11월 30일(목) 오후 6시 CRITICAL 필수
- Replication PSYNC2(부분 동기화) 관련 수정, 그러나 문제가 발견되어 다음 날 4.0.5으로 업그레이드 되었습니다. 같은 날에 두 번 Release되기는 처음입니다.
Redis 4.0.3 - 2017년 11월 30일(목) 오후 1시 CRITICAL 필수
- Replication PSYNC2(부분 동기화) 관련 수정, 그러나 문제가 발견되어 바로 4.0.4으로 업그레이드되었다.
Redis 4.0.2 - 2017년 9월 21일(목) HIGH 높음
Redis 4.0.1 - 2017년 7월 24일(월) MODERATE 보통
- Redis Cluster 사용자는 업그레이드하기를 권고합니다.
Redis 4.0.0 GA(General Availability) - 2017년 7월 14일(금) CRITICAL 필수
- 새로운 4.0 복제 엔진 » 복제에 관한 일반적인 정보
- Expire된 키 삭제와 관련된 LAZYFREE 파라미터 추가
- HSET: 여러 개 field와 value를 입력할 수 있도록 수정했습니다.
- DEBUG DIGEST
- 그 외 많은 개선과 버그 수정이 있었습니다.
Redis 4.0.0-RC3(Release Candidate) - 2017년 4월 22일(토) HIGH 높음
- MIGRATE 시 TTL 정보(Expire time 정보)를 잃어버리는 버그 수정 » MIGRATE
- Redis Cluster에서 노드가 살아있는지 죽었는지를 확인하는 로직이 메시지 교환을 훨씬 적게하는 방식으로 개선되었습니다. » Heartbeat Check
- ZipList 버그 수정 » Internal ZipList
- Copy-on-Write 버그 수정 » Copy-on-Write 분석
- ZADD 버그 수정 » ZADD
- Solaris 지원 개선
- freeMemoryIfNeeded() 개선
- GEO 버그 수정
- Jemalloc 안전한 버전으로 내림(downgrade)
- redis.conf에 있는 lua-time-limit 파라미터 무시함
Redis 4.0.0-RC2(Release Candidate) - 2016년 12월 6일(화) LOW 낮음
- GEORADIUS 버그 수정
- 모듈 시스템(Module System) 버그 수정
Redis 4.0.0-RC1(Release Candidate) - 2016년 12월 2일(금) 4.0의 새로운 기능들
- 모듈 시스템(Module System): Redis 기능을 확장하고 새로운 데이터 유형을 구현할 수있는 모듈을 작성할 수 있게 되었습니다.
4.0에서 가장 크게 추가된 기능이다. 이것 때문에 버전에 4.0이 되었다.
» 모듈 시작 - Partial Replication (PSYNC) version 2: Failover되어 마스터가 바뀌었을 때 클론(슬레이브)들이 Full-Replication하는 것이 기존 방식이였다. 새 방식에서는 바뀐 데이터만 받는 Partial Resynchronization로 개선되었다. » Partial Resynchronization
- Expire된 키를 제거하는 알고리즘 개선: » LRU(Least recently used) -> LFU (Least Frequently Used)
- 별도 쓰레드로 키 삭제: 서버 성능 개선 » UNLINK » FLUSHDB Async » FLUSHALL Async
- 혼합된 RDB-AOF 포멧: Rewrite와 로드(reload)가 빨라졌다.
- MEMORY: 메모리 사용량을 자세히 볼 수 있는 새 명령이 추가되었다.
- Redis Cluster NAT(Network Address Translation) / Docker 지원: 이를 위해 Redis Cluster Bus Protocol이 변경되었습니다. 그래서 3.2와 호환되지 않습니다. redis.conf에 announce-ip/port 파라미터가 추가되었습니다.
- 온라인 메모리 조각 모음 기능 추가: CONFIG SET activedefrag yes -> 자세한 내용은 redis.conf를 보세요.
- SWAPDB 명령 추가: ability to completely and immediately (no latency) replace two Redis databases.
- LPUSHX / RPUSHX 명령에 value를 여러 개 입력할 수 있도록 수정
- INFO Persistence에 rdb, aof COW(Copy-on-Write) size 추가
- 이전 버전보다 메모리를 좀 적게 사용합니다.
- 3.2와 호환되지 않거나 달라져서 주의해야 할 것들
- Redis Cluster Bus Protocol 개선으로 3.2와 호환되지 않습니다.
- CLUSTER NODES 명령의 출력에 "@bus-port"가 추가되었습니다. 프로그램 내에서 사용한다면 관련 코드를 수정하세요. 가능하면 CLUSTER SLOTS 명령을 사용하세요.
- 쓰기 가능한(Writable) 클론(슬레이브)는 쓰기를 하위 클론에 전파하지 않습니다.
- RDB 파일 포멧이 변경되었습니다. 4.0은 3.2 RDB 파일을 읽을 수 있습니다.
- INFO 출력 형식 일부가 변경되었습니다.
- SLOWLOG: 정보에 Client name과 IP:Port 항목을 추가했습니다.
- GEODIST, GEOPOS, GEOHASH 명령에서 존재하지 않는 키에 대한 리턴 값이 변경되었습니다.
- 일부 로그 포멧이 변경되었습니다.
Redis 3.2.x Release Notes
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 높음
- Expire time이 설정된 키를 MIGRATE 했을 때 Expire time을 제거해서 Persist 키로 만드는 버그를 수정했습니다. 이 버그는 멀티 키 마이그레이션 기능 구현 시 포함되었습니다. Redis Cluster Reshard와 관련있으므로 Redis Cluster 사용자는 업그레이드하시기 바랍니다.
- 보안: "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.by: 새 클러스터 생성 후 관련 정보를 보여주도록 수정
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 높음
- 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 개선 » 관련 글
- 초기 상태
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 복제본 이전이 수정되었습니다. 자세한 내용은 문제 # 2924를 참조하십시오.
https://github.com/antirez/redis/issues/2924
Redis 2.8.x Release Notes
Redis 2.6.x Release Notes
Redis 2.4.x Release Notes
Redis 2.2.x Release Notes
<< Introduction | Release Notes | Commands >> |
---|
조회수 :
Email
답글이 올라오면 이메일로 알려드리겠습니다.