728x90
반응형
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions, and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

오늘은 Redis의 기본적인 개념에 대해서 공부하는 겸 포스트를 적어보도록 하겠다. 

우선 Redis는 in-memory data structure store, database, cache, message broker 등으로 사용할 수 있는 open source platform이다. 

보통은 memory에 필요한 data를 caching 하여 Database의 접근을 줄여서 service의 속도를 높이기 위해서 사용한다. 

 

저장할 수 있는 data structure로는 String, Hash, List, Set, sorted Set, Bitmap, Hyperloglogs, Geospatial Indexes, Stream 등 다양하다. 그리고 Cluster로 구성하여 Fault tolerance, Preventing diseaster 등을 할 수 있다.

 

 To achieve top performance, Redis works with an in-memory dataset. Depending on your use case, you can persist your data either by periodically dumping the dataset to disk or by appending each command to a disk-based log. You can also disable persistence if you just need a feature-rich, networked, in-memory cache.
Redis also supports asynchronous replication, with very fast non-blocking first synchronization, auto-reconnection with partial resynchronization on net split.

 

Redis는 Top performance를 달성하기 위해 in-memory data set으로 동작된다. 이 말은 service가 중단될 경우 data를 잃어버리게 되는 것이다. 하지만 데이터를 저장하기 위해서 주기적으로 데이터를 disk에 저장하거나 수행되는 각 커맨드를 disk에 log로 남길 수 있다. 

그리고, Asyncronous replication을 지원해서 replica 를 생성해 둔다면 불의의 사고로 데이터를 잃어버리는 것을 막을 수 있다. 

 

You can run atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing an element to a list; computing set intersection, union and difference; or getting the member with highest ranking in a sorted set.

그리고 중요한 부분! Redis는 Atomic operation을 보장한다. 이 얘기는 여러 유저가 동시에 같은 정보를 업데이트 하더라도 손실되는 정보가 없다는 얘기이다. 예를 들면 2명의 유저가 동시에 `count` 를 증가시킨다고 할 때 완전 동시에 업데이트시 count는 1개만 증가할 수 있는 경우가 발생될 수 있을 것이다. 하지만 Atomic operation이 보장된다면 count는 2가 증가된다. 

 

Redis는 많은 언어를 지원하고 있다. Java의 경우는 여기를 보면 된다. 

앞으로 Redis 설치 및 사용방법 등에 대해서 알아보도록 하자~

728x90
반응형

'Infrastructure > redis' 카테고리의 다른 글

Redis 설치하기 in kubernetes  (0) 2022.01.12

+ Recent posts