Skip to main content
Version: 1.5.0

Redis

Distributed Cachebackend/redis

Redis is an in-memory data structure store, used as a database, cache, and message broker. It supports data structures such as strings, hashes, lists, sets, and more.

📦 Installation

go get github.com/azrod/kivigo/backend/redis

Requires a running Redis server. You can run Redis locally, use a managed service, or deploy it in containers.

Dependencies

  • Redis server (version 6.0+)
  • Network connectivity to Redis instance
  • Optional: Redis Cluster for high availability

✨ Features

Basic Operations
Batch Operations
Health Checks
Persistence
TTL/Expiration
Clustering
Pub/Sub
Transactions

🚀 Usage

package main

import (
"github.com/azrod/kivigo"
"github.com/azrod/kivigo/backend/redis"
)

func main() {
// Basic configuration
opt := redis.DefaultOptions()
opt.Addr = "localhost:6379"

// Custom configuration
customOpt := &redis.Options{
Addr: "localhost:6379",
Password: "mypassword",
DB: 0,
PoolSize: 20,
MinIdleConns: 5,
MaxRetries: 3,
}

// TLS configuration
tlsOpt := redis.DefaultOptions()
tlsOpt.Addr = "redis.example.com:6380"
tlsOpt.TLSConfig = &tls.Config{
ServerName: "redis.example.com",
}

// Redis Cluster configuration
clusterOpt := &redis.ClusterOptions{
Addrs: []string{
"redis-node-1:6379",
"redis-node-2:6379",
"redis-node-3:6379",
},
Password: "cluster-password",
}

// Create backend
kvStore, err := redis.New(customOpt)
if err != nil {
panic(err)
}
defer kvStore.Close()

// Create client
client, err := kivigo.New(kvStore)
if err != nil {
panic(err)
}
}

📝 Notes

  • Redis is primarily an in-memory store - ensure adequate RAM for your dataset
  • Configure persistence (RDB snapshots or AOF) based on your durability requirements
  • Use connection pooling for high-throughput applications
  • Redis Cluster provides automatic sharding and high availability
  • Consider using Redis Sentinel for high availability in non-cluster setups
  • Monitor memory usage and configure appropriate eviction policies
  • Network latency affects performance - deploy Redis close to your application
  • Use Redis AUTH and TLS for security in production environments

🔗 Additional Resources