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 end:0 -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"))
相关推荐
wespaul2 小时前
VeapAI 自然语言操作实战|第 05 篇:向量与召回——从知识条目到可检索资产
大数据·数据库·人工智能·milvus
IT_Octopus7 小时前
【零基础入门 LLM 开发 · Day 13】:LangChain 的对话记忆——Message 对象版
人工智能·python·langchain
一只鹿鹿鹿7 小时前
政务外网整体设计方案(PPT)
大数据·数据库·web安全·系统安全·流程图·政务
2603_965148117 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
Android系统攻城狮7 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
AI砖家7 小时前
安全进入 Agent Loop:2027 年 Coding Agent 的决胜点
数据库·安全·codex·vibecoding
wangqiaowq8 小时前
SQL server C盘空间占满的处理
数据库·sql
文人sec8 小时前
SQL基础入门笔记 | 从零基础到掌握核心查询语句
数据库·笔记·sql
快乐的韭菜根根8 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
数字新视界8 小时前
机房动环监控提升运维效率
大数据·服务器·数据库·动环监控系统·动力与环境监控系统