← 返回首页
🗄️

Redis运维管理

📂 devops ⏱ 2 min 253 words

Redis运维管理

Redis简介

Redis是一个开源的内存数据结构存储系统,用作数据库、缓存和消息代理。

安装Redis

# Ubuntu/Debian
sudo apt-get install redis-server

# CentOS/RHEL
sudo yum install redis

# Docker
docker run -d --name redis \
    -p 6379:6379 \
    -v redis_data:/data \
    redis:alpine redis-server --appendonly yes

基本操作

# 连接Redis
redis-cli

# 基本命令
SET key value
GET key
DEL key
EXISTS key
EXPIRE key 3600
TTL key

# 数据类型
HSET user:1 name "John" age 30
HGET user:1 name

LPUSH queue item1
RPUSH queue item2
LPOP queue

SADD tags tag1 tag2
SMEMBERS tags

配置优化

# /etc/redis/redis.conf

# 绑定地址
bind 127.0.0.1

# 保护模式
protected-mode yes

# 端口
port 6379

# 后台运行
daemonize yes

# 日志文件
logfile /var/log/redis/redis-server.log

# 数据目录
dir /var/lib/redis

# 数据库数量
databases 16

# 最大内存
maxmemory 1gb
maxmemory-policy allkeys-lru

# 持久化
appendonly yes
appendfsync everysec

持久化

RDB快照

# 自动保存
save 900 1      # 900秒内至少1次修改
save 300 10     # 300秒内至少10次修改
save 60 10000   # 60秒内至少10000次修改

# 手动触发
BGSAVE
SAVE

AOF日志

# 启用AOF
appendonly yes

# 同步策略
appendfsync always    # 每次写入
appendfsync everysec  # 每秒(推荐)
appendfsync no        # 操作系统决定

高可用

主从复制

# 从节点配置
replicaof 192.168.1.100 6379
masterauth your-password

Redis Sentinel

# sentinel.conf
port 26379
sentinel monitor mymaster 192.168.1.100 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000

Redis Cluster

# 创建集群
redis-cli --cluster create \
    192.168.1.101:6379 \
    192.168.1.102:6379 \
    192.168.1.103:6379 \
    192.168.1.104:6379 \
    192.168.1.105:6379 \
    192.168.1.106:6379 \
    --cluster-replicas 1

# 查看集群状态
redis-cli cluster info
redis-cli cluster nodes

监控

# 查看信息
INFO
INFO memory
INFO stats
INFO clients

# 查看慢查询
SLOWLOG GET 10
SLOWLOG LEN
SLOWLOG RESET

# 监控命令
MONITOR

实践:Redis缓存配置

# docker-compose.yml
version: '3.8'

services:
  redis:
    image: redis:alpine
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
    command: redis-server --appendonly yes --maxmemory 1gb --maxmemory-policy allkeys-lru

  redis-commander:
    image: rediscommander/redis-commander
    ports:
      - "8081:8081"
    environment:
      - REDIS_HOSTS=local:redis:6379

volumes:
  redis_data:

总结

Redis是高性能缓存和数据存储的首选。掌握Redis的配置、持久化和高可用方案,可以构建高性能的应用架构。