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
相关推荐
二宝哥9 小时前
CentOS 7.9 系统下 Redis 5.0.4 单机安装与源码编译安装指南
redis·centos
ShiXZ21315 小时前
Redis docker-compose 部署指南
redis·docker·eureka
青山木18 小时前
Redis 缓存一致性全解:从 Cache Aside 到延迟双删、Canal+MQ 的进阶之路
java·数据库·redis·后端·缓存
YDS82918 小时前
大营销平台 —— 活动SKU库存扣减业务及其一致性处理
java·spring boot·redis·rabbitmq·ddd
爬也要爬着前进1 天前
redis主从搭建
数据库·redis·缓存
用户095367515831 天前
在系统的学习 redis 前的疑惑
redis·go
吴声子夜歌2 天前
Redis 3.x——集群故障转移
java·数据库·redis·集群
明豆2 天前
Redis 分布式缓存生产实战
redis·分布式·缓存
海兰2 天前
【高速缓存】RedisVL 指南:从向量搜索到 AI 应用落地
人工智能·redis
weixin_727535622 天前
双Token认证体系深度拆解:Spring Security + JWT + Redis
redis·spring·wpf