Redis 数据库基础:安装、5 大核心数据类型与常用命令

目录

[一、Redis 简介](#一、Redis 简介)

[二、Linux 下 Redis 安装与启动](#二、Linux 下 Redis 安装与启动)

[1. 安装](#1. 安装)

[2. 启动、连接](#2. 启动、连接)

三、五大数据类型命令详解

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

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

[3. Hash 哈希(字典)](#3. Hash 哈希(字典))

[4. Set 集合](#4. Set 集合)

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

[四、Redis 通用 Key 操作指令(全部数据类型通用)](#四、Redis 通用 Key 操作指令(全部数据类型通用))

五、小结总结

[拓展:简单 Python‑redis 示例](#拓展:简单 Python‑redis 示例)


一、Redis 简介

Redis 是一款开源、内存型、键值对 NoSQL 数据库,数据主要存放内存,读写速度极高,支持持久化把数据落盘保存。

  • 优势:高性能、支持多种数据结构、支持过期时间、事务、发布订阅;
  • 常见使用场景:缓存、计数器、排行榜、会话存储、去重、消息队列。
  • 数据类型:字符串 (String)、列表 (List)、集合 (Set)、有序集合 (ZSet)、哈希 (Hash)。

二、Linux 下 Redis 安装与启动

1. 安装

复制代码
# 更新软件源
sudo apt update
# 安装redis服务端
sudo apt install redis-server

2. 启动、连接

复制代码
# 启动redis服务
service redis-server start

# 进入redis客户端命令行
redis-cli

默认本地连接127.0.0.1:6379,6379 是 Redis 默认端口。

三、五大数据类型命令详解

1. String 字符串

最基础类型,key 对应 value,value 可以是字符串、数字。

表格

功能 命令
存入单个 set k1 v1
存入多个 mset k1 v1 k2 v2
取出单个 get k1
取出多个 mget k1 k2
删除 key del k1
数字自增 incr age
数字自减 decr age
获取字符串长度 strlen k1

示例:

复制代码
set username zhangsan
get username
mset age 20 gender male
mget age gender
incr age

2. List 列表

底层双向链表,允许重复元素,可以做栈、队列,左右两边都可以插入弹出。

表格

功能 命令
左侧插入 lpush list1 a b c
右侧插入 rpush list1 1 2
左侧弹出 lpop list1
右侧弹出 rpop list1
查看全部 lrange list1 0 -1
获取列表长度 llen list

lrange key start end0 -1代表查看列表全部元素。

3. Hash 哈希(字典)

适合存储对象,key 下面存放多个 field‑value,类似 Python 字典。

表格

功能 命令
添加字段 hset jjk k1 v1 k2 v2
获取单个字段 hget jjk k1
获取多个字段 hmget jjk k1 k2
获取全部字段和值 hgetall jjk
删除字段 hdel jjk k1
判断字段是否存在 hexists jjk k1
获取 hash 字段数量 hlen jjk

示例:存储用户信息

复制代码
hset user:100 id 100 name lisi age 22
hgetall user:100

4. Set 集合

无序,元素不可重复,适合去重,支持交集、并集、差集运算。

表格

功能 命令
插入元素 sadd s1 v1 v2 v3
查看全部 smembers s1
指定删除 srem s1 3
随机删除一个 spop s1
判断元素是否存在 sismember s1 v1
获取集合元素个数 scard s1
交集 sinter s1 s2
并集 sunion s1 s2
差集 sdiff s1 s2

场景:标签、好友共同关注、去重统计。

5. ZSet 有序集合

集合基础上增加score权重分数,元素不重复,可以按分数排序,做排行榜。

表格

功能 命令
添加(带权重 score) zadd zs1 q1 1 k1 q2 2
查看全部(带分数) zrange zs1 0 -1 withscores
按分数范围查询 zrangebyscore zs1 10 20
查看元素权重 zscore z1 k1
删除元素 zrem zs1 k1
获取元素总数 zcard zs1

场景:热搜排行榜、积分排名。

四、Redis 通用 Key 操作指令(全部数据类型通用)

表格

功能 命令 说明
查看所有 key keys * 生产环境禁止使用,遍历全部 key 性能很差
查看 key 的数据类型 type k1 返回 string/list/set/zset/hash
删除 key del key 删除任意类型 key
重命名 key rename k1 k2 把 k1 改名为 k2
判断 key 是否存在 exists k1 存在返回 1,不存在 0
设置过期时间 expire k1 80 80 秒后 key 自动过期删除
查看剩余存活时间 ttl k1 -1:永久;‑2:key 不存在

expire 过期特性是 Redis 做缓存的核心。

五、小结总结

  1. Redis 内存数据库,5 种核心结构:String、List、Hash、Set、ZSet。
  2. String 简单键值;List 双向链表;Hash 存对象;Set 去重集合;ZSet 有序排行榜。
  3. keys *不要线上使用;expire实现过期淘汰;ttl查看剩余时间。
  4. 命令是开发、面试高频考点,日常开发更多是 Python/Java 等客户端调用,底层就是封装这些 redis 命令。

拓展:简单 Python‑redis 示例

复制代码
import redis

r = redis.Redis(host="127.0.0.1", port=6379, decode_responses=True)
r.set("name", "zhangsan")
print(r.get("name"))

r.hset("user:101", mapping={"name":"lisi", "age":20})
print(r.hgetall("user:101"))
相关推荐
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
未济2 天前
linux 配置环境变量
linux
傲世仙尊2 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
qq_426003962 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技2 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
这个DBA有点耶2 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G2 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备2 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能