Redis Fundamentals and Implementation Guide

Overview of Redis

Redis stands as an open-source, in-memory data structure store developed in C language. It serves as a database, cache, and message broker supporting multiple programming languages. This NoSQL database operates through key-value pairs stored in memory, delivering high-performance operations.

Core Characteristics

Speed: Operations execute directly from RAM, providing exceptional performance.

Key-Value Architecture: Maps identifiers to values efficiently.

Non-relational Structure: Stores data as key-value pairs without traditional table relationships.

Persistence Support: Maintains data durability by saving memory contents to disk.

High Throughput: Achieves approximately 110,000 read operations and 81,000 write operations per second.

Multiple Data Structures: Supports strings, hashes, lists, sets, and sorted sets.

Atomic Operations: Ensures transactional integrity across operations.

Scalability: Offers distributed cluster capabilities through master-slave configurations.

Benefits and Use Cases

Modern web applications face performance challenges under heavy traffic loads. Traditional relational databases struggle with connection limits and I/O bottlenecks. Redis addresses these issues by caching frequently accessed data and reducing database load. It works alongside traditional databases rather than replacing them entirely.

Ideal for storing high-traffic data that changes infrequently, such as counters, session information, and temporary tokens.

Linux Installation Process

Create Configuration and Data Directories

mkdir -p /opt/redis/config
mkdir -p /opt/redis/storage

Obtain Configuration File

Download the necessary configuration file to /opt/redis/config directory.

Pull Docker Image

docker pull redis:6.0

Deploy Redis Container

docker run -d -p 6379:6379 \
--name redis-instance \
--restart=unless-stopped \
--privileged=true \
-v /opt/redis/config/redis.conf:/etc/redis/redis.conf \
-v /opt/redis/storage:/data \
redis:6.0

Launch Client Connection

redis-cli

Primary Data Types

Strings

Most commonly used for single-value storage including usernames, ages, JSON objects, and verification codes.

SET identifier value
GET identifier
DEL identifier
KEYS *
INCR counter     Increment by 1
DECR counter     Decrement by 1

Hashes

Suitable for storing multiple attributes under a single key, such as user profiles or article metadata.

HSET object field1 value1
HSET object field2 value2
HGET object field
HDEL object field
HLEN object      Count fields
HGETALL object   Retrieve all fields

Lists

LPUSH collection item
RPUSH collection item
LPOP collection
RPOP collection
LRANGE collection start end    Get range of elements

Sets

SADD group element1 element2
SREM group element
SMEMBERS group    View all members
SCARD group       Count members

Sorted Sets

ZADD ordered-set score member
ZREM ordered-set member
ZSCORE ordered-set member    Get member's score
ZCARD ordered-set           Count members

Time-to-Live Management

Many use cases require automatic expiration of keys. Cache entries and verification tokens benefit from timed destruction. Redis provides commands to establish expiration periods and automatically remove expired keys.

EX specifies seconds, PX specifies milliseconds (case-insensitive).

SET name john EX 30          Expire in 30 seconds
TTL key                      Remaining time in seconds
PTTL key                     Remaining time in milliseconds
EXPIRE key duration          Set expiration in seconds
PEXPIRE key duration         Set expiration in milliseconds

Spring Boot Integration

The official Jedis client enables Java applications to connect to Redis instances. Modern implementations utilize Spring's RedisTemplate for seamless integration.

Add Maven Dependency

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

Configure Redis Connection

spring:
    redis:
        host: 192.168.31.100
        port: 6379
        password: 111
        database: 0
        pool:
            max-active: 8
            max-wait: -1ms
            max-idle: 8
            min-idle: 0
            timeout: 5000ms

Inject Redis Template

@Autowired
private RedisTemplate<String, Object> redisOperations;

Serialization Configuration

Spring Boot stores data in binary format when connecting to Redis. Proper serialization ensures readable string format instead of raw binary data.

redisOperations.setKeySerializer(new StringRedisSerializer());
redisOperations.setValueSerializer(new Jackson2JsonRedisSerializer<>(TargetClass.class));

Tags: Redis NoSQL Caching database Spring Boot

Posted on Thu, 07 May 2026 18:09:37 +0000 by eldorik