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
相关推荐
problc1 小时前
大模型API和秘钥获取地址
数据库·redis·缓存
Antonio9151 小时前
【Redis】Linux 配置Redis
linux·数据库·redis
Antonio9156 小时前
【Redis】 Redis 基础命令和原理
数据库·redis·缓存
半新半旧18 小时前
python 整合使用 Redis
redis·python·bootstrap
daixin884820 小时前
什么是缓存雪崩?缓存击穿?缓存穿透?分别如何解决?什么是缓存预热?
java·开发语言·redis·缓存
daixin88481 天前
Redis过期数据的删除策略是什么?有哪些?
数据库·redis·缓存
幻灭行度1 天前
通过redis_exporter监控redis cluster
数据库·redis·缓存
冷崖1 天前
Redis缓存策略以及bigkey的学习(九)
redis·学习·缓存
chen1108____2 天前
用 Docker 一键部署 Flask + Redis 微服务
redis·docker·flask
失散132 天前
大型微服务项目:听书——10 缓存+分布式锁优化根据专辑id查询专辑详情接口
redis·分布式·缓存·微服务