Redis 操作与命令
连接数据库与检查结构
redis-cli · 连接 Redis 并执行命令;默认连接本机,远程连接应按服务要求启用 TLS
- 交互式连接并提示输入密码,不在命令行暴露密码:
bash
redis-cli -h {{localhost}} -p {{6379}} --askpass- 用 TLS 和指定 CA 连接远程服务:
bash
redis-cli --tls --cacert {{ca.pem}} -h {{redis.example.com}} -p {{6380}} --askpass- 检查本机连接:
bash
redis-cli PING- 选择逻辑库查询键;Redis Cluster 仅支持库 0:
bash
redis-cli -n {{0}} GET {{app:status}}查询与读取数据
Redis hashes · 用哈希保存字段;写入会覆盖同名字段,示例连接本机
用哈希保存字段;写入会覆盖同名字段,示例连接本机。
- 写入多个字段,会更新已有字段:
bash
redis-cli HSET {{user:42}} name {{Alice}} active {{1}}- 读取单个字段:
bash
redis-cli HGET {{user:42}} name- 读取所有字段;大哈希应避免一次全量读取:
bash
redis-cli HGETALL {{user:42}}- 删除指定字段,此操作会修改数据:
bash
redis-cli HDEL {{user:42}} {{obsolete_field}}Redis lists · 处理有序列表;弹出操作会移除元素,示例连接本机
- 向列表头部写入一个任务:
bash
redis-cli LPUSH {{queue:jobs}} {{job-42}}- 查看前 10 项,不移除元素:
bash
redis-cli LRANGE {{queue:jobs}} 0 9- 查看长度:
bash
redis-cli LLEN {{queue:jobs}}- 从尾部取走一个任务;配合 LPUSH 实现先进先出:
bash
redis-cli RPOP {{queue:jobs}}Redis sets · 管理不重复的集合成员;示例连接本机,新增和删除会修改数据
- 添加成员,已有成员不会重复:
bash
redis-cli SADD {{project:tags}} {{backend}} {{api}}- 检查成员是否存在:
bash
redis-cli SISMEMBER {{project:tags}} {{api}}- 读取全部成员;仅用于大小可控的集合:
bash
redis-cli SMEMBERS {{project:tags}}- 删除指定成员:
bash
redis-cli SREM {{project:tags}} {{obsolete}}Redis sorted sets · 按分数维护有序集合;示例连接本机,成员唯一且分数可更新
- 写入成员分数;已有成员会更新分数:
bash
redis-cli ZADD {{leaderboard}} {{100}} {{player-42}}- 按分数从低到高查看前 10 个成员及分数:
bash
redis-cli ZRANGE {{leaderboard}} 0 9 WITHSCORES- 查看单个成员分数:
bash
redis-cli ZSCORE {{leaderboard}} {{player-42}}- 移除成员及其分数:
bash
redis-cli ZREM {{leaderboard}} {{player-42}}Redis strings · 读取和写入字符串;示例默认连接本机 Redis,SET 会替换已有值
- 写入带过期时间的值,会替换已有内容:
bash
redis-cli SET {{app:status}} {{ready}} EX {{60}}- 只在键不存在时写入,避免覆盖:
bash
redis-cli SET {{app:lock}} {{unique-token}} NX EX {{30}}- 读取值:
bash
redis-cli GET {{app:status}}- 原子增加整数计数;不存在时从 0 开始:
bash
redis-cli INCR {{app:visits}}分析计划、过期时间与运行状态
Redis INFO · 查看 Redis 服务器状态与运行指标
- 查看服务器版本及运行时间:
bash
redis-cli INFO server- 查看内存使用和分配指标:
bash
redis-cli INFO memory- 查看命中率相关计数和处理统计:
bash
redis-cli INFO stats- 查看各逻辑库键数与过期键统计:
bash
redis-cli INFO keyspaceRedis SCAN · 增量遍历键;COUNT 只是提示,结果可能重复且不是一致性快照
- 从游标 0 开始扫描匹配前缀的键:
bash
redis-cli SCAN 0 MATCH "{{app:*}}" COUNT {{100}}- 把上次返回的游标传入,直到返回游标 0;空批次不代表结束:
bash
redis-cli SCAN {{returned_cursor}} MATCH "{{app:*}}" COUNT {{100}}- 使用客户端自动遍历游标;大库仍应控制扫描频率:
bash
redis-cli --scan --pattern "{{app:*}}"Redis TTL · 检查和调整过期时间;过期会删除键,命令默认连接本机
- 查看剩余秒数;-1 表示无过期时间,-2 表示键不存在:
bash
redis-cli TTL {{session:42}}- 查看剩余毫秒数:
bash
redis-cli PTTL {{session:42}}- 将过期时间设置为 5 分钟,会改变已有过期策略:
bash
redis-cli EXPIRE {{session:42}} 300- 取消过期,键将持续保留并可能增加内存占用:
bash
redis-cli PERSIST {{session:42}}示例整理自 tldr-pages,作者为 tldr-pages team and contributors,遵循 CC BY 4.0。
继续阅读
- 数据与原子性
- 数据与原子性
- 数据与原子性