当前位置: 首页 > news >正文

Redis后端的简单了解与使用(项目搭建前置)

文章目录

  • Redis
    • 特点
    • 为什么使用Redis
  • Linux下Redis安装
  • Redis数据结构
    • String字符串
      • 单值缓存
      • 计数器
    • Hash(哈希)
    • List(列表)
    • Set(集合)
    • zset(有序集合)
    • 设置值时设置有效时间

Redis

Redis 是一个开源的,使用C语言编写的,支持网络交互的,内存中的 Key-Value 数据结构存储系统,支持多种语言,它可以用作数据库、缓存和消息 中间件。

高性能: 数据存储在内存中,直接访问内存

键值对: 新闻id(键) : 点赞数量(值)

​ 商品id : {id:1000,name:“华为手机”,price:3000}

非关系型数据库 : 数据存储是键值对的, 没有二维表关系 不使用sql操作

使用redis作为缓存, 将一些访问量大,或者修改较少的数据使用redis存储起来,

对mysql形成保护.原理如下:

image-20250620185106069

特点

  • Redis将数据存储在内存中,也支持数据的持久化,可以将内存中的数据保持 在磁盘中,重启的时候可以再次加载进行使用。
  • 性能极高, Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • Redis供list,set,zset,hash 等数据结构的存储。
  • 原子– Redis的所有操作都是原子性的,同时Redis还支持对几个操作全 并后的原子性执行。
  • Redis分布式集群化扩展性极高,即master-slave(主-从)模式。

为什么使用Redis

随着web3.0的时代到来,传统的关系型数据库在大量的访问压力出现了一些 性能问题,如连接数量问题,IO瓶颈问题等,此时需要使用redis对部分数据进行缓 存,或者将某些数据直接存储在redis中,以减少对关系型数据库的访问压力. 当然redis数据库也是不能完全替代关系型数据库的,他们是相互依赖的.

Linux下Redis安装

创建redis配置文件和数据映射挂载卷

mkdir -p /opt/redis/conf
mkdir -p /opt/redis/data

image-20250620192427641

redis.conf文件拖入conf文件夹

连接密码

image-20250620192543760

注释掉bind 127.0.0.1即可远程连接

image-20250620192635396

拉取镜像

docker pull redis:6.0

image-20250620193219271

安装命令

docker run -d -p 6379:6379 \
--name redis \
--restart=always \
--privileged=true \
-v /opt/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /opt/redis/data:/data \
redis:6.0

image-20250620193347998

连接redis方法

1.命令连接

1.1进入redis终端

docker exec -it redis bash

1.2进入redis命令行

redis-cli

image-20250620194411306

进入成功

2.安装Redis桌面端

image-20250620194621866

3.连接Redis

image-20250620194935069

Redis数据结构

Redis结构分为String、hash、list、set、zset(有序集合)

String字符串

  • string 是 redis 最基本的类型,一个 key 对应一个 value。
  • string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比 如jpg图片或者序列化的对象。
  • string 类型是 Redis 最基本的数据类型,
  • string 类型的值最大能存储 512MB。

单值缓存

set key value
get key
del key
keys *

单值缓存可以为json字符串

计数器

set news_views:1 设置文章访问量
incr news_views:1 文章访问量+1
decr news_views:1 文章访问量-1
get news_views:1 获得值

Hash(哈希)

redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合 用于存储对象.

image-20250620200838815

List(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列 表的头部(左边)或者尾部(右边)。

image-20250620200906449

Set(集合)

Redis 的 Set 是无序集合。

zset(有序集合)

redis zset 也是不允许重复的成员,但是是有序的。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为 集合中的成员进行从小到大的排序。 zset 的成员是唯一的,但分数(score)却可以重复。

image-20250620201000887

设置值时设置有效时间

有时候我们并不希望redis的key一直存在。例如缓存,验证码等数据,我们希 望它们能在一定时间内自动的被销毁。redis提供了一些命令,能够让我们对key 设置过期时间,并且让key过期之后被自动删除.

set [key] [value] [EX seconds|PX milliseconds|KEEPTTL] [NX|XX]

EX表示秒为单位

PX表示毫秒为单位

EX、PX不区分大小写

egset name cui ex 10设置失效时间为10s

ttl [key] 查看剩余剩余时间 秒

pttl [key]查看剩余时间 毫秒

设置值后设置有效时间

expire [key] 时间(秒)
pexpire [key] 时间(毫秒)
http://www.lryc.cn/news/573327.html

相关文章:

  • DeepEP开源MoE模型分布式通信库
  • 洛谷P3953 [NOIP 2017 提高组] 逛公园
  • 【DCS开源项目】—— Lua 如何调用 DLL、DLL 与 DCS World 的交互
  • day44-硬件学习之arm启动代码
  • 【Datawhale组队学习202506】零基础学爬虫 02 数据解析与提取
  • 【simulink】IEEE5节点系统潮流仿真模型(2机5节点全功能基础模型)
  • 【智能体】dify部署本地步骤
  • LeetCode第279题_完全平方数
  • 湖北理元理律师事务所企业债务纾困路径:司法重整中的再生之道
  • 蓝桥杯备赛篇(上) - 参加蓝桥杯所需要的基础能力 1(C++)
  • 华为OD机试_2025 B卷_判断一组不等式是否满足约束并输出最大差(Python,100分)(附详细解题思路)
  • 车载电子电器架构 --- 电子电气架构设计方案
  • QC -io 服务器排查报错方式/报错: Failed to convert string to integer of varId variable!“
  • 2.7 Python方法调用机制解析:从描述符到字节码执行
  • 学习C++、QT---03(C++的输入输出、C++的基本数据类型介绍)
  • 【无标题】使用 Chocolatey 安装 WSL 管理工具 LxRunOffline
  • 贪心算法思路详解
  • Mac电脑-Markdown编辑器-Typora
  • 利用nRF54L15-DK的DEBUG OUT接口调试用户设计的ARM处理器系统
  • springboot口腔管理平台
  • 【分布式理论】读确认数与写确认数:分布式一致性的核心概念
  • WPF Style样式 全局样式资源字典
  • 获取 DOM 与 nextTick:Vue 中的 DOM 操作
  • CTF--PhP Web解题(走入CTF)
  • 增量学习ASAP的源码剖析:如何实现人形的运动追踪和全身控制(核心涉及HumanoidVerse中的agents模块)
  • Redis集群部署终极指南:架构选型、生产部署与深度优化
  • 人形机器人_双足行走动力学:本田机械腿的倒立摆模型
  • rt-thread中使用usb官方自带的驱动问题记录
  • 【全开源】填表问卷统计预约打卡表单系统+uniapp前端
  • 基于FPGA的白噪声信号发生器verilog实现,包含testbench和开发板硬件测试