Redis环境搭建与redis-cli基础操作

目录

实验前提

1.目的

2.要求

3.实验环境

实验流程图

Redis的安装与启动

[a. 下载 Redis for Windows](#a. 下载 Redis for Windows)

[b. 启动 Redis 服务](#b. 启动 Redis 服务)

[c. 连接Redis](#c. 连接Redis)

Redis中的数据结构及操作

[1. String(字符串)](#1. String(字符串))

数据结构

操作

[2. List(列表)](#2. List(列表))

数据结构

操作

[3. Set(集合)操作](#3. Set(集合)操作)

数据结构

操作

[4. Hash(散列)操作](#4. Hash(散列)操作)

数据结构

操作

[5. ZSet(有序集合)操作](#5. ZSet(有序集合)操作)

数据结构

操作

Redis中常用键管理命令


实验前提

1.目的

  1. 掌握在 Windows环境下安装、配置并启动 Redis 服务;
  2. 熟悉 redis-cli 的连接方式 与常用管理命令;
  3. 掌握Redis五种核心数据类型(String、List、Set、Hash、ZSet)的redis-cli操作命令;
  4. 理解各数据类型的应用场景,能结合实际业务选择合适的数据类型;
  5. 培养命令行工具的使用习惯与独立排查问题的能力。

2.要求

  1. 独立完成 Redis 的安装与启动,记录安装步骤截图;
  2. 按照指导书完成全部 redis-cli 命令练习,理解每条命令的语义。

3.实验环境

  • Win11操作系统
  • MongoDB 8.2
  • MongoDB Compass 1.49.5
  • Mongosh 2.8.3
  • Python 3.11.4
  • PyMongo 4.17.0
  • Redis 3.0.504 Redis-cli

实验流程图

Redis的安装与启动

Windows 安装方式(推荐)

a. 下载 Redis for Windows

访问 https://github.com/tporadowski/redis/releases,下载最新.msi 安装包(如 Redis-x64-5.0.14.1.msi)。

双击安装,勾选"Add the Redis installation folder to the PATH",按提示完成安装。

b. 启动 Redis 服务

方法1:安装时勾选了"Add to Windows Service",Redis 将自动作为系统服务运行。

方法2:在命令行中执行以下命令手动启动:

redis-server

看到 Redis 版本信息和端口 6379 监听成功即表示启动正常。

c. 连接Redis

打开新的命令行窗口,执行以下命令连接本地 Redis:

redis-cli -h 127.0.0.1 -p 6379

成功连接后,命令行提示符变为 127.0.0.1:6379>

注意事项:

    1. Redis 默认端口为 6379,请确认防火墙未阻断该端口。
    1. 生产环境应设置密码(requirepass),实验环境可暂不设置。
    1. Windows 下关闭 redis-server 窗口将终止服务,请勿在实验过程中关闭。

Redis中的数据结构及操作

1. String(字符串)

数据结构

  1. Redis 字符串是最基础的数据结构:所有键都是字符串,其他数据结构(如 List、Set、Hash、ZSet)的元素或字段值也均为字符串;
  2. 支持普通文本(含 JSON/XML)、整数/浮点数(可原子自增)以及二进制数据(如图片、音视频),最大容量 512 MB;
  3. 典型应用:缓存、计数器、共享 Session、限速器等。

操作

命令 含义 使用方法示例
SET 存储一个字符串键值对 SET book:1:name "Redis实战"
GET 获取指定键的值 GET book:1:name
MSET 批量设置多个键值对 MSET book:2:name "本草纲目" book:2:author "李时珍"
MGET 批量获取多个键的值 MGET book:2:name book:2:author
SETNX 仅当键不存在时设置 (Set if Not eXists) SETNX book:1:price "100"(返回0表示已存在)
SETEX 设置值并指定过期时间(秒) SETEX session:token 30 "abc123"
INCR 将键的整数值加1 INCR visit:count
DECR 将键的整数值减1 DECR visit:count
INCRBY 将键的整数值增加指定步长 INCRBY visit:count 10
APPEND 向字符串末尾追加内容 APPEND book:1:name "-全六册"
STRLEN 获取字符串的长度 STRLEN book:2:name

2. List(列表)

数据结构

  1. 用来储存多个有序的字符串,一个列表最多能存储2^32-1个元素。
  2. 在Redis中,可充当栈和队列的操作可以队列表两段插入与弹出,也可以获取指定范围内的元素列表等。
  3. 适用场景:Redis中的Ipush+broop命令组合可以实现阻塞队列:生产者客户端用Ipush从列表左侧插入元素,多个消费者客户端使用broop阻塞式的抢占列表尾部的元素。

操作

命令 含义 使用方法示例
LPUSH 从列表左端插入一个或多个元素 LPUSH user:1:history "page_home" "page_product"
RPUSH 从列表右端插入一个或多个元素 RPUSH task:queue "task1" "task2" "task3"
LRANGE 获取列表指定范围的元素 (0 -1 表示全部) LRANGE user:1:history 0 2
LLEN 获取列表长度 LLEN task:queue
LINDEX 通过索引获取列表元素 LINDEX task:queue 0
LSET 通过索引设置列表元素的值 LSET task:queue 0 "task1_updated"
LPOP 弹出并返回列表左端的元素 LPOP task:queue
RPOP 弹出并返回列表右端的元素 RPOP task:queue
LREM 删除列表中指定数量、指定值的元素 LREM test:list 2 "a"(从左删除2个"a")

3. Set(集合)操作

数据结构

  1. 可以储存多个有序的字符串,但是每个元素不能重复;
  2. 集合中的元素无序,故不能通过索引下标获取元素;
  3. 支持多集合的运算,取交集、并集、差集等...
  4. 适用场景:获取不同类别用户的共同爱好,增强用户粘度。

操作

命令 含义 使用方法示例
SADD 向集合中添加一个或多个元素 SADD article:1:tags "Python" "Redis" "数据库"
SMEMBERS 返回集合中的所有元素 SMEMBERS article:1:tags
SISMEMBER 判断元素是否存在于集合中 SISMEMBER article:1:tags "Redis"
SCARD 返回集合的元素个数(基数) SCARD article:1:tags
SREM 删除集合中的一个或多个元素 SREM article:1:tags "数据库"
SPOP 随机弹出一个元素 SPOP article:2:tags
SINTER 返回多个集合的交集 SINTER article:1:tags article:2:tags
SUNION 返回多个集合的并集 SUNION article:1:tags article:2:tags
SDIFF 返回第一个集合相对于其他集合的差集 SDIFF article:1:tags article:2:tags

4. Hash(散列)操作

数据结构

  1. 键值对结构
  2. 哈希结构对于字符串序列化缓存信息更为直观,且更新操作更加便捷
  3. 适用场景:用户信息管理。

操作

命令 含义 使用方法示例
HSET 设置哈希表中的字段值 HSET user:1001 name "张三" age "21"
HGET 获取哈希表中指定字段的值 HGET user:1001 name
HGETALL 获取哈希表中所有字段和值 HGETALL user:1001
HMSET 批量设置多个字段值 (已弃用,可用HSET代替) HMSET product:001 name "键盘" price "399"
HMGET 批量获取多个字段的值 HMGET product:001 name price
HINCRBY 将哈希表中指定字段的整数值增加指定步长 HINCRBY product:001 stock -1
HDEL 删除哈希表中的一个或多个字段 HDEL product:001 stock
HEXISTS 判断哈希表中是否存在指定字段 HEXISTS product:001 name
HKEYS 获取哈希表中的所有字段名 HKEYS product:001
HVALS 获取哈希表中的所有值 HVALS product:001

5. ZSet(有序集合)操作

数据结构

  1. 每个元素关联一个分数(score):成员(member)唯一,但分数可以重复;Redis 根据分数对元素进行自动排序;
  2. 支持集合运算,可对多个ZSet取交集、并集等;
  3. 适用场景:排行榜、延迟队列(score=时间戳)、带权重的任务队列、热搜榜等。

操作

命令 含义 使用方法示例
ZADD 向有序集合添加元素(带分数) ZADD game:rank 1500 "玩家A" 3200 "玩家B"
ZRANGE 按分数升序返回指定范围的元素 ZRANGE game:rank 0 -1 WITHSCORES
ZREVRANGE 按分数降序返回指定范围的元素 ZREVRANGE game:rank 0 -1 WITHSCORES
ZSCORE 返回元素的分数 ZSCORE game:rank "玩家A"
ZRANK 返回元素在有序集合中的升序排名(从0开始) ZRANK game:rank "玩家A"
ZREVRANK 返回元素在有序集合中的降序排名 ZREVRANK game:rank "玩家A"
ZINCRBY 增加元素的分数 ZINCRBY game:rank 500 "玩家A"
ZRANGEBYSCORE 按分数范围查询元素 ZRANGEBYSCORE game:rank 2000 5000 WITHSCORES
ZREM 删除有序集合中的元素 ZREM game:rank "玩家D"
ZCARD 返回有序集合的元素个数 ZCARD game:rank
ZCOUNT 返回分数在指定范围内的元素个数 ZCOUNT game:rank 2000 5000

Redis中常用键管理命令

命令 含义 使用方法示例
KEYS 模糊查询键(生产环境慎用) KEYS book:*
TYPE 返回键的类型 TYPE book:1:name
EXISTS 判断键是否存在 EXISTS book:1:name
RENAME 重命名键 RENAME oldkey newkey
DEL 删除一个或多个键 DEL book:1:price
EXPIRE 设置键的过期时间(秒) EXPIRE session:token 30
TTL 查看键的剩余生存时间(秒) TTL session:token
PERSIST 移除键的过期时间 PERSIST session:token
相关推荐
倔强的石头1061 小时前
《Kingbase护城河》——深度解密数据库行锁冲突与等待事件架构
java·数据库·架构
Omics Pro1 小时前
中医临床决策5款大语言模型,谁主沉浮?
数据库·人工智能·机器学习·语言模型·自然语言处理·chatgpt
BomanGe101 小时前
NSK NH35EM 高负载法兰型直线导轨详述
服务器·网络·数据库·经验分享·规格说明书
何极光1 小时前
MySQL 8.0详细安装教程(附下载地址)
数据库·mysql·adb
2601_961875241 小时前
花生十三资料网盘|百度云|下载
数据库·windows·git·svn·eclipse·github
承渊政道1 小时前
【MySQL数据库学习】(MySQL复合查询)
数据库·学习·mysql·bash·database·数据库开发·数据库架构
Cx330❀1 小时前
【MySQL基础】详解MySQL数据类型:底层原理、越界测试与最佳实践
linux·开发语言·数据库·c++·mysql
Upsy-Daisy1 小时前
Hermes Agent 学习笔记 07:Messaging Gateway,让 Agent 从终端走向多平台入口
运维·服务器·数据库
程序员晨曦1 小时前
数据库写轮眼:看透 MVCC 版本链、快照、隔离级别。
数据库·oracle