Redis 小记

Redis 命令小记

Redis 是一个文本/二进制数据库(textual/binary database)

CLI 命令

redis-cli, redis-server, redis-benchmark, redis-check-dump, redis-check-aof

  • redis-cli 执行命令
shell 复制代码
# 方式 1
redis-cli -h 127.0.0.1 -p 6379
> 127.0.0.1:6379> PING
# 方式 2 (紧接命令, 默认数据 0)
redis-cli SET mykey "Hello, Redis!"
redis-cli GET mykey
  • redis-server 和 shell工具
shell 复制代码
# 启动 Redis 服务器 
redis-server /path/to/redis.conf
# 测试 Redis 性能
redis-benchmark -n 10000 -c 50
# 检查 RDB 文件(Redis 数据库文件)是否有效
redis-check-dump dump.rdb
# 检查 AOF 文件(Append-Only File)是否有效 (--fix 检查并修复)
redis-check-aof --fix mydata.aof
  • redis-benchmark 结果查看
shell 复制代码
> redis-benchmark -n 10000 -c 50
====== 标题 (数据结构) ======
  10000 requests completed in 1.01 seconds  # 发送了 10,000 个请求, 请求完成的时间 1.01 秒
  50 parallel clients # 表示同时有 50 个客户端在发起请求
  3 bytes payload # 表示每个请求的负载大小
  keep alive: 1

99.65% <= 1 milliseconds # 表示 99.65% 的请求在 1 毫秒内完成。(大多数请求的性能)
99.92% <= 2 milliseconds # 表示 99.92% 的请求在 2 毫秒内完成。(大多数请求的性能)
100.00% <= 2 milliseconds # 表示所有请求都在 2 毫秒内完成。(所有请求的响应时间, 最后一个百分比含义不一样)
57142.86 requests per second # 表示 Redis 每秒能够处理约 57,143 个请求

更低的响应时间和高并发处理能力通常意味着 Redis 的性能良好。

基本数据类型

Redis 5 种常用数据类型,包括字符串、哈希表、列表、集合和有序集合

  • 字符串: 简单数据。
  • 哈希: 存储对象。
  • 列表: 有序集合。
  • 集合: 不重复元素集合。
  • 有序集合: 具有分数的元素集合。

数据库清空命令

  • FLUSHDB:清空当前数据库的所有键
  • FLUSHALL:清空所有数据库的所有键

说明:

  • FLUSH 意味着"清空"或"冲洗",用于移除内存中的所有数据
  • DROP: 可能会引起误解,认为是删除整个数据库而不仅是清空。
  • DELETE ALL: 可能会被理解为逐条删除所有数据,而 FLUSHDB 则明确表示一次性清空
  • TRUNCATE: 强调的是清空数据而保留结构,用于关系型数据库表

Redis 是一个键值存储内存数据库,FLUSH 更符合 Redis 的设计理念, 强调快速清空。

基本操作命令

键值检查

shell 复制代码
KEYS pattern    # 查找匹配模式的键
EXISTS key      # 检查键是否存在
ping            # 检查服务器连接
info            # 获取服务器信息
TYPE key        # 获取键的数据类型
DEL key         # 删除指定键

数据类型操作

字符串操作

shell 复制代码
SET key value   # 设置字符串值
GET key         # 获取字符串值
INCR key        # 将值加1

哈希表操作

shell 复制代码
HSET key field value   # 设置哈希表字段的值
HGET key field         # 获取哈希表字段的值
HGETALL key           # 获取哈希表所有字段和值

列表操作

shell 复制代码
LPUSH mylist value    # 将值插入列表头部
LRANGE mylist 0 -1    # 获取列表所有元素
LPOP mylist           # 移除并返回列表第一个元素

集合操作

shell 复制代码
SADD myset member     # 添加集合成员
SMEMBERS myset        # 获取集合所有成员
SISMEMBER myset member # 判断元素是否为集合成员

有序集合操作

shell 复制代码
ZADD myzset score member    # 添加成员到有序集合
ZRANGE myzset 0 -1         # 获取有序集合所有成员
ZREM myzset member         # 移除有序集合成员

高级特性

事务操作

shell 复制代码
MULTI     # 开始事务
EXEC      # 提交事务
DISCARD   # 回滚事务

示例:

shell 复制代码
# 提交
MULTI
HSET user:1001 name "张三" age 30 email "zhangsan@example.com"
HSET user:1002 name "李四" age 28 email "lisi@example.com"
EXEC
# 回滚
MULTI
LPUSH orders:pending "订单ID:20230901 金额:299.00"
SADD users:active 1001 1002
ZADD orders:timestamps 1661980800 "2023-09-01T08:00:00"
DISCARD

发布/订阅

shell 复制代码
PUBLISH channel message    # 发送消息
SUBSCRIBE channel         # 订阅频道

键过期

shell 复制代码
EXPIRE key seconds    # 设置键过期时间
TTL key               # 获取键剩余生存时间

数据库遍历

shell 复制代码
SCAN cursor    # 迭代遍历数据库中的键
SCAN 0 MATCH *key
SCAN 0 COUNT 10
相关推荐
IT大白鼠1 天前
Redis 系列 · 第 01 篇——认知入门:Redis 是什么
redis·nosql
彧azz1 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
lbb 小魔仙1 天前
OpenClaw + cpolar 实战:远程 NAS、分享小游戏、RDP,再配置公网 AI 入口
数据库·人工智能·redis·oracle·prometheus
夕除1 天前
redis--018
redis
两锭子1 天前
Redis基础
redis
烟沙九洲1 天前
Redis 缓存穿透、缓存击穿、缓存雪崩
数据库·redis
字节探索1 天前
Redis 只会当缓存用?这 10 大实战场景,让你的系统快到飞起
redis·后端
于樱花森上飞舞1 天前
【Redis】哨兵详解
java·开发语言·数据库·redis
Rain的Java大神之路2 天前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
Wang's Blog2 天前
Java 接入Redis: 通用命令与键管理
java·服务器·redis