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"))
相关推荐
lhldsg1 小时前
智慧场馆解决方案软件开发实战:从需求分析到落地部署全流程
数据库·数据仓库·需求分析
huaweichenai1 小时前
spring boot 实现数据库分页操作
数据库·spring boot
天天被压力1 小时前
【零依赖量化数据实战 #31】沪深A实时盘口全景:逐笔·全盘实时·最新价·历史逐笔
java·人工智能·python
CS_Zero1 小时前
Ubuntu 22.04挂载新硬盘
linux·运维·ubuntu
oushaojun21 小时前
深入 Linux 动态链接:so 库构建与运行逻辑(转)
linux
小白羊丨1 小时前
异步任务创建接口如何幂等?
android·数据库
莫得感情 o1 小时前
Redis 04 · 执行模型:一条命令的生命周期与 I/O 多路复用
redis·缓存
今天AI了吗1 小时前
【AI】一文讲清 RAG:从大模型局限到企业级知识库落地流程
前端·javascript·人工智能·python·深度学习·机器学习·easyui
“AI国潮设计-小江”1 小时前
《Python实战 | 用SDXL大模型生成“潮汕英歌舞”国潮IP头像,已申请外观专利,附Prompt思路!》
人工智能·python·prompt·aigc·scikit-learn