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"))
相关推荐
CCIE-Yasuo14 分钟前
网络安全-学习数据库-Mysql-2
数据库·学习·mysql
这个DBA有点耶20 分钟前
内核级AI与多模融合:AI数据库在海外场景的落地要点
数据库·人工智能·架构
zh路西法22 分钟前
【PACE】面向永磁同步电机PMSM 执行器的参数辨识与能耗感知强化学习 Sim-to-Real
python·cma-es·pmsm·sim-to-real·issac·pace
涛思数据(TDengine)24 分钟前
从工业本体到 AI 原生:TDengine 出席 2026 QCon 分享工业数据基础设施路径
大数据·数据库·人工智能·tdengine·工业
Jesse_EC31 分钟前
换乘次数最少的路径 SQL 查询详解与实战经验——从 WITH RECURSIVE 到 pgRouting
数据库·postgresql
工控丫丫36 分钟前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
后台模板学习1 小时前
大模型 Prompt 工程在电商订单系统中的踩坑记录
java·python·prompt
2601_967987371 小时前
如何运行 Python 代码
python·最佳实践·脚本文件·代码运行·交互式环境
WiKiLeaks_successor1 小时前
重构Time库的抽象设计
python·重构
AI源码1 小时前
基于 Python 的短视频用户行为分析系统
开发语言·python