Redis Release Notes

레디스 서버 교육 신청 레디스 정기점검/기술지원
Redis Technical Support
레디스 엔터프라이즈 서버
Redis Enterprise Server

Redis Release Notes 5

Redis 5.0.8 - 2020년 3월 12일(목)        

  Upgrade urgency HIGH: This release fixes security issues.

  This is a list of fixes in this release:

   - Merge pull request #6975 from dustinmm80/add-arm-latomic-linking
   - Fix Pi building needing -latomic, backport
   - Fix impl of aof-child whitelist SIGUSR1 feature.
   - Fix ThreadSafeContext lock/unlock function names
   - XREADGROUP should propagate XCALIM/SETID in MULTI/EXEC
   - Fix client flags to be int64 in module.c
   - Fix small bugs related to replica and monitor ambiguity
   - Fix lua related memory leak.
   - Simplify #6379 changes.
   - Free allocated sds in pfdebugCommand() to avoid memory leak.
   - Jump to right label on AOF parsing error.
   - Free fakeclient argv on AOF error.
   - Fix potential memory leak of rioWriteBulkStreamID().
   - Fix potential memory leak of clusterLoadConfig().
   - Fix bug on KEYS command where pattern starts with * followed by \x00 (null char).
   - Blocking XREAD[GROUP] should always reply with valid data (or timeout)
   - XCLAIM: Create the consumer only on successful claims.
   - Stream: Handle streamID-related edge cases
   - Fix ip and missing mode in RM_GetClusterNodeInfo().
   - Inline protocol: handle empty strings well.
   - Mark extern definition of SDS_NOINIT in sds.h
   - FIX revisit CVE-2015-8080 vulnerability
   - Avoid sentinel changes promoted_slave to be its own replica.

Redis 5.0.7 - 2019년 11월 19일(화)              

  • 모듈 복제 영역을 수정했습니다. module.c RM_Call(), RM_Replicate(), RM_GetContextFlags(), moduleCreateArgvFromUserFormat(), moduleHandlePropagationAfterCommandCallback()
  • 모듈 동적 적재(modules dynamic loading) dlopen()과 쓰레드 생성 pthread_create()가 충돌해서 서버 시작(초기화) 시 모듈 로드 moduleLoadFromQueue()후에 쓰레드를 생성하는 bioInit()을 실행하는 것으로 수정했습니다. server.c InitServerLaset()
  • AOF BGREWRITE fsync(aof_fsync_offset) 관련 버그 수정(심각한 것은 아님) aof.c backgroundRewriteDoneHandler()
  • 복제 cached master 관련 memory leak 수정(매우 드물게 발생할 수 있음). replication.c replicationSetMaster()
  • 스트림(stream) ID 0-0, stream_node_max_bytes, stream_node_max_entries 관련 수정 t_stream.c streamAppendItem()

Redis 5.0.6 - 2019년 9월 25일(수)              

  • HyperLogLog 버그 수정(invalid access to the memory). hyperloglog.c hllSparseSet()
  • 모듈 수정/추가: modules.c RM_Log(): context가 없거나 모듈없는 context도 로깅하도록 수정. rdbSaveModulesAux(): rdb aux 저장. RM_ReplyWithCString()
  • String object 관련 메모리 최적화: object.c tryObjectEncoding()
  • Sorted Set(Skiplist) 메모리 사용량 계산 수정, 관련 명령 MEMORY USAGE object.c objectComputeSize()
  • 클러스터: nodes.conf 파일 로딩 시 vars가 짝이 맞지 않을 경우 에러 처리. cluster.c clusterLoadConfig()
  • SHUTDOWN 시 보류중인 버퍼를 복제본으로 전송하도록 수정했습니다. networking.c flushSlavesOutputBuffers()

Redis 5.0.5 - 2019년 5월 15일(수)              

  • 업그레이드 권장합니다. 특히 AOF, Module 사용자
  • AOF: everysec 일 때, 서버가 갑자기 다운되었을 때 마지막 초의 데이터도 저장될 수 있도록 수정.
  • Streams: 반복(IteratorStart) 관련 버그 수정
  • CONFIG REWRITE: 메모리 누수(leak) 버그 수정
  • BITFIELD: 메모리 누수(leak) 버그 수정
  • Redis Cluster: Manual failover 관련 버그 수정
  • Diskless replication 관련 버그 수정
  • Modules API: RedisModule_GetKeyNameFromIO() 추가
  • Modules API: RDB format 저장 관련 수정

Redis 5.0.4 - 2019년 3월 18일(월)              

  • 업그레이드 권장합니다.
  • HyperLogLog: 메모리 Overflow 관련 버그 수정
  • XCLAIM: 버그 수정
  • ZRANGEBYLEX, ZREVRANGEBYLEX 관련 메모리 누수(leak) 수정.
  • BZPOPMIN, BZPOPMAX 관련 count가 0 일 때 버그 수정
  • CONFIG SET client-output-buffer-limit: strtoll() -> memtoll()로 변경
  • GEO 관련 명령에서 notifyKeyspaceEvent 오류 수정: LIST -> ZSET
  • LREM: notifyKeyspaceEvent 오류 수정: GENERIC -> LIST
  • redis-check-aof: 잠재적 Overflow 관련 수정
  • redis-cli: memkeys, memkeys-samples 옵션 추가
  • redis-cli: cluster 관련 버그 수정
  • HINCRBYFLOAT: isnan()을 사용해서 숫자가 아닌지 체크, isinf()를 사용해서 무한대인지 체크하는 부분 추가
  • LRU 필드 관리 개선

Redis 5.0.3 - 2018년 12월 11일(화)              

  • 크리티컬(critical)하지는 않지만 업그레이드를 권장합니다.
  • redis-cli cluster mode에서 check/fix/reshard/rebalance를 개선했습니다.
  • MEMORY USAGE 좀 더 정밀하게 계산하도록 개선했습니다.
  • DEBUG DIGEST-VALUE sub-command 추가했습니다.
  • AOF 로딩 중 config set maxmemory 명령이 수행되지 않도록 했습니다.

Redis 5.0.2 - 2018년 11월 22일(목)              

  • Stream 사용자, Redis-cli cluster 사용자는 필수 업데이트입니다.
  • Stream에서 XREADGROUP 관련 버그 수정
  • Redis-cli cluster 버그 수정
    SETSLOT 할 때 복제(Replica) 노드는 스킵하도록 수정했다.

Redis 5.0.1 - 2018년 11월 7일(수)              

  • Stream 사용자, Redis-cli cluster 사용자는 필수 업데이트입니다.
  • Redis-cli Cluster에서 슬롯을 이전한 후 모든 노드에 업데이트하도록 수정했고 기타 버그를 수정했다.
  • Stream: XCLAIM 명령에서 잘못된 엔트리를 리턴하거나 프로토콜이 동기화 되지 않는 버그를 수정했다.
    Fix an XCLAIM non trivial issue: sometimes the command returned a wrong entry or desynchronized the protocol.
  • Stream: XRANGE 명령에서 COUNT 옵선을 0으로 했을 때 버그를 수정했다.
  • KEYS 명령이 실행될 때 만료된(expired) 키들을 삭제하지 않는다. 왜냐하면 대량 삭제가 발생하는 것을 막기 위해서이다. 하지만 조회되지 않게했다.
    만료된 키들은 서버 클론에서 삭제하기도 하지만 해당 키에 명령이 실행될 때 삭제한다. 그런데 KEYS 명령은 모든 키를 대상으로 하기 때문에 만료된 키들이 많으면 해당 키를 삭제하는데 시간이 많이 걸릴 수 있어서 KEYS 명령이 실행되는데 시간이 많이 걸리는 것을 방지하기 위해서 이렇게 수정했다.
    Don't evict expired keys when the KEYS command is called, in order to avoid a mass deletion event. However expired keys are not displayed by KEYS as usually.
    do not delete expired keys in KEYS command.
  • 센티널에서 auth 명령을 사용할 수 있게 했고, 보호 모드(protected mode) 기능을 없앴다.
    Sentinel now supports authentication! Check the Sentinel official doc for more info.
    Disable protected mode in Sentinel.
  • 복제 노드가 Full Sync용 RDB 파일을 받아 저장하는 중 자식 프로세스가 RDB 파일을 저장중이면 이 자식 프로세스를 kill 시키고 자식 프로세스가 작성중이던 RDB Temp 파일을 삭제한다.
    Fix a race condition when producing the RDB file for full SYNC.
    Prevent RDB autosave from overwriting full resync results
    When replica kills a pending RDB save during SYNC, log it.
  • MIGRATE/RESTORE 명령에서 이미 만료된(expired)된 키를 포함하고 있을 때 키 개수 불일치로 잘못 동작 했다.
    Fix MIGRATE/RESTORE mismatch reply when certain keys already expired.
  • AOF 버퍼 메모리 사용량 계산하는 방법을 수정했다.
    Improvements in the computation of the memory used, when estimating the AOF buffers.
    Overhead is the allocated size of the AOF buffer, not its length
  • "key misses" 버그 수정, 많은 케시 미스를 포함하지 않는것으로 수정했다.
    "key misses" stats accounting fixed. Many cache misses were not counted.
    if we read a expired key, misses++
  • When in MULTI state, return OOM while accumulating commands and there is no longer memory available.
    MULTI 명령에서 메모리가 없을 때 OOM를 리턴하도록 했다.
    MULTI: OOM err if cannot free enough memory in MULTI/EXEC context
  • Stack trace generation on the Raspberry PI (and 32bit ARM) fixed.
    라즈베리 파이에서 스텍 트레이스 생성 버그를 수정했다.
  • 모듈이 크레시되는 버그 수정
    Fix a crash in Redis modules, thread safe context reply accumulation.
  • MSETNX 명령에서 불필요한 루프를 피하도록 수정했다.
    optimize MSETNX to avoid unnecessary loop
  • More commands now have the HELP subcommand.
    더 많은 명령에 HELP 서브 명령을 추가했다.
  • 오타 수정: Fix cluster-replica-no-failover option name.
  • MEMORY, LATENCY 명령에 HELP 서브 명령 추가
  • Add command fingerprint comment for XSETID.
  • Fixed an issue about adaptive server HZ timer.
  • Fix build on FreeBSD and possibly others.

Redis 5.0.0 - 2018년 10월 17일(수)              

  • 5.0의 가장 큰 변화는 스트림 데이터 타입의 추가입니다.     » Stream 소개    
  • ZSet에 4가지 명령이 추가되었습니다. ZPOPMIN, ZPOPMAX, BZPOPMIN, BZPOPMAX
  • INFO memory에 많은 항목이 추가되었습니다.
  • 용어 변경: 슬레이브(slave) -> 복제(replica)
  • SLAVEOF -> REPLICAOF
  • 클러스터 관리 툴로 사용했던 redis-trib.rb의 기능을 redis-cli에 추가했다. 그 동안 redis-trib.rb와 설치된 Ruby 버전이 맞지 않으면 실행되지 않는 문제가 있었다.
    사용 예) redis-cli --cluster create
  • 새 레디스 모듈 APIs: Timers, Cluster and Dictionary APIs.
  • RDB에 LFU, LRU 정보를 저장한다.
  • HyperLogLog 성능 개선
  • LOLWUT 명령 추가     » LOLWUT 소개    

Redis 5.0-rc6 - 2018년 10월 10일(수)              

Redis 5.0-rc5 - 2018년 9월 6일(목)              

Redis 5.0-rc4 - 2018년 8월 3일(금)              

Redis 5.0-rc3 - 2018년 6월 14일(목)              


<< Release Notes 6 Release Notes 5 Release Notes 4 >>

Email 답글이 올라오면 이메일로 알려드리겠습니다.