Agent skill

redis

Redis 数据库管理

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/redis-chaterm-terminal-skills

SKILL.md

Redis 数据库管理

概述

Redis 命令、持久化、集群配置等技能。

连接管理

bash
# 本地连接
redis-cli

# 远程连接
redis-cli -h hostname -p 6379
redis-cli -h hostname -p 6379 -a password

# 连接并选择数据库
redis-cli -n 1

# 执行单条命令
redis-cli ping
redis-cli get key

# 集群连接
redis-cli -c -h hostname -p 6379

基础命令

键操作

bash
# 查看键
KEYS *                              # 所有键(生产慎用)
KEYS user:*                         # 匹配模式
SCAN 0 MATCH user:* COUNT 100       # 安全遍历

# 键信息
EXISTS key
TYPE key
TTL key                             # 剩余过期时间
PTTL key                            # 毫秒

# 键操作
DEL key
EXPIRE key 3600                     # 设置过期时间
PERSIST key                         # 移除过期时间
RENAME key newkey

字符串

bash
SET key value
SET key value EX 3600               # 带过期时间
SETNX key value                     # 不存在时设置
GET key
MSET key1 val1 key2 val2
MGET key1 key2
INCR counter
INCRBY counter 10
DECR counter
APPEND key " suffix"
STRLEN key

哈希

bash
HSET user:1 name "John" age 30
HGET user:1 name
HMSET user:1 name "John" age 30
HMGET user:1 name age
HGETALL user:1
HDEL user:1 age
HEXISTS user:1 name
HKEYS user:1
HVALS user:1
HINCRBY user:1 age 1

列表

bash
LPUSH list value                    # 左侧插入
RPUSH list value                    # 右侧插入
LPOP list
RPOP list
LRANGE list 0 -1                    # 获取所有
LLEN list
LINDEX list 0
LSET list 0 newvalue
LTRIM list 0 99                     # 保留前100个
BLPOP list 10                       # 阻塞弹出

集合

bash
SADD set member1 member2
SREM set member1
SMEMBERS set
SISMEMBER set member
SCARD set                           # 元素数量
SINTER set1 set2                    # 交集
SUNION set1 set2                    # 并集
SDIFF set1 set2                     # 差集
SRANDMEMBER set 3                   # 随机获取

有序集合

bash
ZADD zset 100 member1 200 member2
ZREM zset member1
ZRANGE zset 0 -1                    # 按分数升序
ZRANGE zset 0 -1 WITHSCORES
ZREVRANGE zset 0 -1                 # 按分数降序
ZRANK zset member                   # 排名
ZSCORE zset member                  # 分数
ZCOUNT zset 100 200                 # 分数范围内数量
ZINCRBY zset 10 member

持久化

RDB 快照

bash
# 手动触发
SAVE                                # 阻塞
BGSAVE                              # 后台

# 配置 redis.conf
save 900 1                          # 900秒内1次修改
save 300 10                         # 300秒内10次修改
save 60 10000                       # 60秒内10000次修改

dbfilename dump.rdb
dir /var/lib/redis

AOF 日志

bash
# 配置 redis.conf
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec                # always/everysec/no

# AOF 重写
BGREWRITEAOF

# 自动重写配置
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

主从复制

bash
# 从节点配置
REPLICAOF master_host master_port
REPLICAOF NO ONE                    # 取消复制

# 查看复制状态
INFO replication

# redis.conf 配置
replicaof master_host master_port
masterauth master_password
replica-read-only yes

集群管理

bash
# 创建集群
redis-cli --cluster create \
    node1:6379 node2:6379 node3:6379 \
    node4:6379 node5:6379 node6:6379 \
    --cluster-replicas 1

# 集群信息
redis-cli -c cluster info
redis-cli -c cluster nodes

# 添加节点
redis-cli --cluster add-node new_node:6379 existing_node:6379

# 重新分片
redis-cli --cluster reshard node:6379

# 检查集群
redis-cli --cluster check node:6379

性能监控

bash
# 服务器信息
INFO
INFO memory
INFO replication
INFO stats
INFO clients

# 实时监控
MONITOR                             # 实时命令(调试用)

# 慢查询
SLOWLOG GET 10
SLOWLOG LEN
SLOWLOG RESET

# 配置慢查询
CONFIG SET slowlog-log-slower-than 10000
CONFIG SET slowlog-max-len 128

# 内存分析
MEMORY USAGE key
MEMORY DOCTOR
DEBUG OBJECT key

# 客户端列表
CLIENT LIST
CLIENT KILL ID client_id

常见场景

场景 1:分布式锁

bash
# 加锁
SET lock:resource unique_value NX EX 30

# 解锁(Lua 脚本保证原子性)
EVAL "if redis.call('get',KEYS[1]) == ARGV[1] then return redis.call('del',KEYS[1]) else return 0 end" 1 lock:resource unique_value

场景 2:限流

bash
# 滑动窗口限流
MULTI
ZADD rate_limit:user:1 timestamp timestamp
ZREMRANGEBYSCORE rate_limit:user:1 0 (timestamp-60000)
ZCARD rate_limit:user:1
EXPIRE rate_limit:user:1 60
EXEC

场景 3:缓存穿透防护

bash
# 布隆过滤器(需要 RedisBloom 模块)
BF.ADD filter key
BF.EXISTS filter key

# 空值缓存
SET key "" EX 60                    # 缓存空值

场景 4:批量删除

bash
# 使用 SCAN + DEL
redis-cli --scan --pattern "prefix:*" | xargs redis-cli DEL

# 使用 UNLINK(异步删除)
UNLINK key1 key2 key3

故障排查

问题 排查方法
内存不足 INFO memory, MEMORY DOCTOR
连接数过多 INFO clients, CLIENT LIST
响应慢 SLOWLOG GET, 检查大 key
主从延迟 INFO replication
集群故障 CLUSTER INFO, CLUSTER NODES
bash
# 查找大 key
redis-cli --bigkeys

# 内存分析
redis-cli --memkeys

# 延迟测试
redis-cli --latency
redis-cli --latency-history

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results