Redis01-基础-入门

零、文章目录

Redis01-基础-入门

1、认识 NoSQL

  • NoSQL 知识请参考:https://blog.csdn.net/liyou123456789/article/details/132612444

2、认识 Redis

(1)简介
  • Redis(Remote Dictionary Server,远程字典服务)是一个开源的、基于内存的高性能键 - 值存储数据库。它由 Salvatore Sanfilippo 编写,使用 ANSI C 语言开发。
  • 官网地址:https://redis.io/

(2)特征
  • 键值(key-value)型,value支持多种不同数据结构,功能丰富。
  • 单线程,每个命令具备原子性
  • 低延迟,速度快(基于内存、IO多路复用、良好的编码)。
  • 支持数据持久化
  • 支持主从集群、哨兵、分片集群
(3)应用场景
  • 缓存:可以缓存经常访问的数据,如网页内容、数据库查询结果等。例如,在一个电商网站中,商品的详情页面内容(如商品描述、图片等)可以缓存在 Redis 中。当用户访问该商品页面时,先从 Redis 中获取数据,如果命中缓存,就直接返回,大大提高了访问速度,减轻了后端数据库的压力。
  • 消息队列:利用 Redis 的列表数据结构可以实现简单的消息队列。生产者将消息添加到列表中,消费者从列表中获取消息。例如,在一个日志收集系统中,各个服务器可以将日志消息发送到 Redis 的一个列表中,然后专门的日志处理服务器从该列表中获取日志消息进行处理。
  • 排行榜系统:有序集合非常适合用于构建排行榜。例如,在一个游戏应用中,玩家的分数作为有序集合成员的分数,玩家的标识作为成员。可以方便地获取排名前 N 的玩家,或者某个玩家的排名等信息。
  • 实时分析:可以存储实时数据,如网站的访问统计信息(每秒的访问量、用户来源等)。通过 Redis 的数据结构和操作,可以快速地对这些数据进行统计和分析。例如,使用 Redis 的计数器(字符串类型,通过 INCR 等命令)来统计每秒的访问量,然后可以实时地展示在监控界面上。
  • 分布式会话:在分布式系统中,可以使用 Redis 来存储会话信息。例如,在一个微服务架构的 Web 应用中,各个微服务可以将用户的会话数据(如用户登录状态、购物车信息等)存储在 Redis 中,这样不同的微服务就可以共享会话数据,实现用户的单点登录和购物车等功能。
(4)优势和局限性
  • 优势
    • 速度极快 :如前面所述,基于内存存储和高效的算法实现,使其在处理大量数据和高并发请求时表现出色。
    • 数据结构灵活 :丰富的数据结构可以满足多种不同的业务需求,方便地存储和操作复杂的数据。
    • 高可用性 :通过主从复制、哨兵系统和集群模式可以实现 Redis 的高可用。主从复制可以实现数据的备份和读写分离,哨兵可以监控主节点状态并进行故障转移,集群模式可以提供横向扩展能力,提高系统的可用性和扩展性。
  • 局限性
    • 数据存储容量受限 :由于数据存储在内存中,所以存储成本相对较高,对于大规模数据存储可能会受到服务器内存大小的限制。
    • 数据类型复杂度相对有限 :虽然 Redis 提供了多种数据类型,但对于一些非常复杂的数据结构和关系(如图数据库中的复杂关系),可能不是最佳选择。
    • 事务的局限性 :如前面提到的,Redis 的事务不是严格的事务,在遇到错误时不会自动回滚,这在一些对事务要求非常严格的应用场景中可能会带来问题。
(5)主要版本说明
  • Redis 2.6(2012年)
    • 服务端支持 Lua 脚本,增强扩展能力;
    • 键过期时间支持毫秒级精度;
    • 新增位图命令 BITCOUNT 和 BITOP;
    • 优化客户端连接数限制,支持更大规模并发;
    • 重构核心代码,为后续集群功能做准备。
  • Redis 2.8(2013年)
    • 主从复制优化,减少网络问题引发的全量复制频率;
    • 支持 IPv6 和绑定多 IP 地址;
    • 新增 CONFIG REWRITE 命令,持久化配置修改;
    • Redis Sentinel(哨兵)第二版,实现生产级高可用;
    • 引入 SET 指令扩展参数,解决分布式锁原子性问题(如 SETNX + EXPIRE)。
  • Redis 3.0(2015年)
    • 正式推出 Redis Cluster(分布式集群),支持自动分片和故障转移;
    • 优化内存管理(如嵌入式字符串编码、LRU 算法);
    • 新增 MIGRATE 命令参数,加速键迁移;
    • BITCOUNT 性能提升,支持高效位操作。
  • Redis 3.2(2016年)
    • 新增 GEO 模块,支持地理位置计算(如 GEOADD、GEODIST);
    • 引入 QUICKLIST 编码,优化列表存储结构;
    • 支持无盘复制(Diskless Replication),降低主节点 I/O 压力;
    • 新增 HSTRLEN 命令,统计哈希字段值的长度。
  • Redis 4.0(2017年)
    • 支持 模块系统,允许第三方扩展功能(如布隆过滤器);
    • 新增 PSYNC 2.0,优化主从切换时的数据同步效率;
    • 提供 MEMORY 命令,增强内存监控;
    • 支持 RDB-AOF 混合持久化,兼顾性能与数据安全;
    • 非阻塞 DEL 和 FLUSH 命令,避免大键删除导致阻塞。
  • Redis 5.0(2018年)
    • 新增 Stream 数据类型,支持消息队列场景;
    • 优化 Redis Cluster 的运维能力(如副本迁移);
    • 改进 CLIENT PAUSE 命令,增强客户端管理。
  • Redis 6.x 系列(2020年)
    • 多线程 I/O:首次支持多线程处理网络 I/O(非命令执行),显著提升高并发场景性能。
    • 客户端缓存(Client-Side Caching):允许客户端本地缓存部分数据,减少服务端请求压力,支持广播和键名跟踪模式。
    • ACL 权限控制增强:细粒度权限管理,支持按命令、键前缀等维度限制用户访问。
    • SSL/TLS 加密通信:提供原生加密支持,增强数据传输安全性。
    • RESP3 协议:新版本通信协议,优化客户端与服务端交互效率,支持更多数据类型。
  • Redis 7.x 系列(2022年)
    • Function 特性:支持在服务端定义和执行自定义函数(类似存储过程),减少客户端与服务器交互次数。
    • Multi-Part AOF:改进 AOF 持久化机制,支持分块写入,降低故障恢复时的数据丢失风险。
    • Sharded Pub/Sub:集群模式下支持分片发布订阅功能,提升分布式消息传递效率。
    • 命令性能优化:如 SORT 命令支持更多参数,内存管理进一步优化。
    • 动态线程数调整:允许运行时动态调整 I/O 线程数量,适应不同负载场景。
  • 版本命名规则补充
    • 稳定版本:第二位为偶数(如 2.6、3.0、4.0)。
    • 开发版本:第二位为奇数(如 2.7、3.1),用于新功能测试

3、Windows 安装 Redis

(1)下载
  • windows 版本下载地址:https://github.com/MicrosoftArchive/redis/tags
  • windows 版本没有官方支持,我们用 3.2.100 这个最新版本
  • 百度网盘下载地址:https://pan.baidu.com/s/1c0eMDGiWOHQzryhNzNXtwg?pwd=1234
(2)安装
  • 下载压缩包绿色版本,解压即安装完成

(3)启动
  • 进入程序目录,打开 cmd 命令行窗口
redis-server.exe[36876] 13 Feb 13:46:42.770 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server.exe /path/to/redis.conf_.__.-``__ ''-.__.-``    `.  `_.  ''-._           Redis 3.2.100 (00000000/0) 64 bit.-`` .-```.  ```\/    _.,_ ''-._(    '      ,       .-`  | `,    )     Running in standalone mode|`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379|    `-._   `._    /     _.-'    |     PID: 36876`-._    `-._  `-./  _.-'    _.-'|`-._`-._    `-.__.-'    _.-'_.-'||    `-._`-._        _.-'_.-'    |           http://redis.io`-._    `-._`-.__.-'_.-'    _.-'|`-._`-._    `-.__.-'    _.-'_.-'||    `-._`-._        _.-'_.-'    |`-._    `-._`-.__.-'_.-'    _.-'`-._    `-.__.-'    _.-'`-._        _.-'`-.__.-'[36876] 13 Feb 13:46:42.773 # Server started, Redis version 3.2.100
[36876] 13 Feb 13:46:42.774 * The server is now ready to accept connections on port 6379
(4)连接操作
  • 进入程序目录,打开 cmd 命令行窗口
redis-cli.exe
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> get name
"zhangsan"

4、Centos7.9 安装Redis7.4

(1)安装依赖环境
  • Redis 是用 C 语言编写的,需要编译环境,因此需要安装 gcctcl
sudo yum install -y gcc tcl
(2)下载源码包
  • 进入指定目录并下载 Redis 7.4 的源码包
  • 百度网盘下载地址:https://pan.baidu.com/s/1va1LCqhaR25UBuHZfyBI9w?pwd=1234
cd /usr/local
wget https://download.redis.io/releases/redis-7.4.0.tar.gz
(3)解压源码包
  • 解压下载的 Redis 源码包:
tar -zxvf redis-7.4.0.tar.gz
(4)编译和安装
  • 进入解压后的目录并进行编译和安装:
  • 如果没有出错,应该就安装成功了,默认的安装路径是在 /usr/local/bin目录下。
  • 该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令。其中:
    • redis-cli:是redis提供的命令行客户端
    • redis-server:是redis的服务端启动脚本
    • redis-sentinel:是redis的哨兵启动脚本
cd redis-7.4.0
make&&make install
(5)配置
  • Redis 的配置文件 redis.conf 位于源码包中,可以将其复制到指定目录并进行修改:
## 创建配置文件目录
mkdir /etc/redis
## 复制配置文件
cp /usr/local/redis-7.4.0/redis.conf /etc/redis/
## 创建日志目录
mkdir /var/log/redis/
  • 使用文本编辑器(如 vi)打开配置文件:
vi /etc/redis/redis.confbind 0.0.0.0
daemonize yes 
requirepass 123123456
logfile "/var/log/redis/redis.log"
  • 根据需要修改以下配置项:
    • 允许访问的地址:默认是 bind 127.0.0.1,只能本地访问。修改为bind 0.0.0.0则可以任意IP访问,生产环境不要这样设置。
    • 后台运行:将 daemonize no 修改为 daemonize yes
    • 设置密码(可选):取消 requirepass 的注释,并设置密码,例如 requirepass 123456
    • 日志文件:设置日志文件路径,例如 logfile "/var/log/redis/redis.log"
(6)启动
  • 为了给外部客户端访问,需要关闭系统防火墙
## 关闭防火墙
sudo systemctl stop firewalld
## 关闭防火墙开机启动
sudo systemctl disable firewalld
  • 默认启动:安装完成后,在任意目录输入redis-server命令即可启动Redis,这种启动属于前台启动,会阻塞整个会话窗口,窗口关闭或者按下CTRL + C则Redis停止。不推荐使用。
redis-server
  • 配置文件启动:如果要让Redis以后台方式启动,则必须修改Redis配置文件,并以配置文件启动:
/usr/local/bin/redis-server /etc/redis/redis.conf
  • 如果要停止 redis 服务,可以使用命令
# 连接到Redis服务器(无密码时)
redis-cli shutdown # 若配置了密码认证 
redis-cli -a 你的密码 shutdown 
(7)验证安装
  • 可以通过以下命令验证 Redis 是否安装成功,如果返回 testvalue,说明 Redis 安装成功。
[root@localhost ~]# redis-cli -a 123123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> get name
"zhangsan"
  • Redis安装完成后就⾃带了命令⾏客户端:redis-cli,使⽤⽅式如下:
redis-cli [options] [commonds]
  • 其中常⻅的options有:
    • -h 127.0.0.1 :指定要连接的redis节点的IP地址,默认是127.0.0.1
    • -p 6379 :指定要连接的redis节点的端⼝,默认是6379
    • -a 123321 :指定redis的访问密码
  • 其中的commonds就是Redis的操作命令,例如:
    • ping :与redis服务端做⼼跳测试,服务端正常会返回 pong
  • 不指定commond时,会进⼊ redis-cli 的交互控制台
(8)设置开机自启
  • 为了使 Redis 在系统启动时自动运行,可以创建一个 systemd 服务文件:
vi /etc/systemd/system/redis.service
  • 将以下内容复制到文件中(注意 ExecStart 的路径为你的 Redis 配置文件路径):
[Unit]
Description=redis-server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
PrivateTmp=true[Install]
WantedBy=multi-user.target
  • 配置说明
    • Description:定义服务描述信息,用于标识该服务名称(显示在systemctl status中)。
    • After=network.target:指定服务启动顺序:需在网络服务(network.target )初始化完成后启动,确保Redis能正常监听端口。
    • Type=forking
      • 适用于以守护进程(后台)模式运行的服务。Redis默认配置为daemonize yes(后台运行),需与此参数匹配。
      • 若Redis未配置为守护进程(daemonize no),需改为Type=simple,否则服务会启动失败。
    • ExecStart:服务启动命令,指定Redis服务端程序路径及配置文件路径。
    • PrivateTmp=true:为服务分配独立的临时目录(/tmp/systemd-private-*),防止临时文件冲突或泄露,增强安全性。
    • WantedBy=multi-user.target
      • 定义服务所属的Systemd目标(target),表示在多用户模式下启用该服务。
      • 执行systemctl enable redis后,服务会随系统启动自动加载。
  • 保存并退出后,重新加载 systemd 配置:
systemctl daemon-reload
  • 可以用下面这组命令来操作redis:
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
# 开机自启
systemctl enable redis

5、Redis 图形客户端工具

(1)Another Redis Desktop Manager
  • 特点:
    • 跨平台支持(Windows、Mac、Linux)。
    • 界面简洁,性能出众,支持加载海量键值。
    • 支持哨兵、集群、SSH 通道、SSL 认证、Stream、订阅、树状视图、命令行,以及暗黑模式。
    • 支持多种格式化方式,甚至可以自定义格式化脚本。
  • 下载地址:https://github.com/qishibo/AnotherRedisDesktopManager
(2)RedisInsight
  • 特点:
    • 由 Redis 官方提供,功能强大,支持监控和分析 Redis 数据。
    • 支持多种数据结构、命令、索引、查询和聚合等功能。
    • 提供命令行交互功能,支持 Redis 5.0 的 Stream 数据类型。
    • 免费社区版和付费企业版可选。
  • 下载地址:https://redis.com/redis-enterprise/redis-insight/
(3)Redis Desktop Manager (RDM)
  • 特点:
    • 跨平台支持(Windows、Linux、macOS)。
    • 提供直观的界面来查看和操作 Redis 数据,支持多种数据类型的展示。
    • 支持 SSL/TLS 加密、SSH 隧道技术和云 Redis 实例(如 Amazon ElastiCache、Microsoft Azure Redis Cache 和 Redis Labs)。
    • 旧版本免费,新版本需付费,但可以通过编译源码继续使用免费版本。
  • 下载地址:https://rdm.dev/
(4)Medis
  • 特点:
    • 专为 Mac 设计,界面简洁美观。
    • 支持数据的可视化展示和编辑,提供方便的搜索和过滤功能。
    • 免费使用。
  • 下载地址:http://getmedis.com/
(5)Redis Plus
  • 特点:
    • 开源免费的桌面客户端软件,支持跨平台。
    • 提供基本的键值查看、编辑、删除操作。
    • 支持监控功能。
  • 下载地址:https://gitee.com/MaxBill/RedisPlus
(6)Tiny RDM
  • 特点:
    • 现代化、轻量级的跨平台 Redis 桌面客户端,支持 Windows、Mac 和 Linux。
    • 界面精美,支持浅色/深色主题。
    • 支持 SSH 隧道、SSL、哨兵模式、集群模式、HTTP 代理、SOCKS5 代理。
    • 支持命令实时监控、数据导入/导出、发布订阅等功能。
  • 下载地址:https://github.com/tiny-craft/tiny-rdm
(7)QuickRedis
  • 特点:
    • 永久免费的 Redis 可视化管理工具。
    • 支持直连、哨兵、集群模式,支持海量键值。
    • 界面友好,支持 Windows、Mac OS X 和 Linux。
  • 下载地址:https://gitee.com/quick123official/quick_redis_blog
(8)使用建议
  • 如果你需要一个功能全面且免费的工具,推荐使用 Another Redis Desktop Manager 或 RedisInsight。
  • 如果你使用 Mac 系统,可以尝试 Medis。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/78681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【嘉立创EDA】如何在更新或转换原理图到PCB时,保留已有布局器件

文章路标👉 :one: 文章解决问题:two: 主题内容:three: 参考方法be end..1️⃣ 文章解决问题 操作环境:嘉立创EDA专业版 V2.2.37 本文使用嘉立创EDA,描述在更新或转换原理图到PCB时,保留已有布局器件的方法。本文将此过程记录,以供有需要的读者参考。 2️⃣ 主题内容 …

03 APQC PROCESS CLASSIFICATION FRAMEWORK (PCF)

APQC流程分类框架(APQC Process Classification Framework, PCF)最初由美国生产力与质量中心(American Productivity & Quality Center, APQC)开发,旨在用于跨组织的流程性能基准比较。现在,它也常被用…

分析型数据库入门指南:如何选择适合你的实时分析工具?

一、什么是分析型数据库?为什么需要它? 据Gartner最新报告显示,超过75%的企业现已在关键业务部门部署了专门的分析型数据库,这一比例还在持续增长。 随着数据量呈指数级增长,传统数据库已无法满足复杂分析场景的需求…

body Param Query 三个 不同的入参 分别是什么意思 在前端 要怎么传 这三种不同的参数

在 NestJS 中,Body()、Param() 和 Query() 用于处理不同类型的请求参数。以下是它们的含义及前端传递方式: Body():请求体参数 • 含义:用于获取请求体中的数据(如 POST/PUT 请求中提交的 JSON、表单数据等&#xff09…

神经网络(自己记录)

一、神经网络基础 5分钟-通俗易懂 - 神经网络 反向传播算法(手算)_哔哩哔哩_bilibili 二、GAT

Redis Slot 槽位分片具体案例

‌键值槽位分配案例‌ 当执行 SET {kaigejava}k1 v1 时,Redis 会提取 {} 内的有效部分 kaigejava,通过 CRC16 算法计算哈希值,再对 16384 取余得到槽位。例如: 若计算结果为 1495,则该键会被分配到槽位 1495 对应的节…

【多模态模型】跨模态智能的核心技术与应用实践

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现(CLIP图像-文本检索)运行结果验证 三、性能对比测试方法论量化数据对比结果…

final static 中是什么final static联合使用呢

final static 联合使用详解 final 和 static 在 Java 中经常一起使用,主要用来定义类级别的常量。这种组合具有两者的特性: 基本用法 public class Constants {// 典型的 final static 常量定义public static final double PI 3.141592653589793;pub…

1.1 道路结构特征

1.1 道路结构特征 1.城市道路分类 道路网的地位、交通功能、沿线的服务功能。快速路 15 30主干路 15 30次干路 15 20支路 10 20 10(20)沥青路面、水泥混凝土路面、砌块路面沥青路面:沥青混凝土、沥青贯入式、沥青表面处治。沥青混凝土各种等级、沥青贯入式和沥青表面处治支路…

C++如何使用调试器(如GDB、LLDB)进行程序调试保姆级教程(2万字长文)

C++作为一门高性能、接近底层的编程语言,其复杂性和灵活性为开发者提供了强大的能力,同时也带来了更高的调试难度。与一些高级语言不同,C++程序往往直接操作内存,涉及指针、引用、多线程等特性,这些都可能成为错误的温床。例如,一个未初始化的指针可能导致程序崩溃,而一…

vite+vue构建的网站项目localhost:5173打不开

原因:关掉了cmd命令提示符,那个端口就没有被配置上,打开就是这样的。 解决方法:重新在工作目录下打开cmd,输入npm run dev重新启动项目。 重新出现这样的界面说明已经成功启动项目,再次在浏览器中刷新并输入…

自主可控鸿道Intewell工业实时操作系统

鸿道Intewell工业实时操作系统是东土科技旗下科东软件自主研发的新一代智能工业操作系统,以下是相关介绍: 系统架构 -Intewell-C全实时构型:设备上只运行自研RTOS的全实时系统,适用于有功能安全认证需求的实时控制场景&#xf…

将大语言模型(LLM)应用于自动驾驶(ADAS)中的几个方向,及相关论文示例

主要方法集中在如何利用LLM的强大推理能力和语言理解能力来增强自动驾驶系统的感知、决策和规划能力。以下是几种典型的方法和思路: 1. 基于LLM的驾驶决策与规划 方法:将LLM作为驾驶决策的核心模块,利用其强大的推理能力生成驾驶行为或轨迹…

rt-linux下的D状态的堆栈抓取及TASK_RTLOCK_WAIT状态

一、背景 在之前的博客 缺页异常导致的iowait打印出相关文件的绝对路径-CSDN博客 里的 2.1 一节里的代码,我们已经有了一个比较强大的抓取D状态和等IO状态超过阈值的waker和wakee的堆栈状态的内核模块。在之前的博客 增加等IO状态的唤醒堆栈打印及缺页异常导致iowa…

【Redis】zset类型

目录 1、介绍2、底层实现【1】压缩列表【2】跳跃表哈希表 3、常用命令 1、介绍 有序集合结合了集合和有序列表的特性,每个元素都会关联一个分数,Redis正是通过这个分数来为集合中的成员进行排序。 2、底层实现 【1】压缩列表 适用条件 1、元素数量 ≤…

ZeroGrasp:零样本形状重建助力机器人抓取

25年4月来自CMU、TRI 和 丰田子公司 Woven 的论文“ZeroGrasp: Zero-Shot Shape Reconstruction Enabled Robotic Grasping”。 机器人抓取是具身系统的核心能力。许多方法直接基于部分信息输出抓取结果,而没有对场景的几何形状进行建模,导致运动效果不…

AI大模型从0到1记录学习 linux day21

第 1 章 Linux入门 1.1 概述 1.2 Linux和Windows区别 第 2 章 VMware、Ubuntu、Xshell和Xftp安装 第 3 章 Linux文件与目录结构 3.1 Linux文件 Linux系统中一切皆文件。 3.2 Linux目录结构  /bin 是Binary的缩写, 这个目录存放着最经常使用的命令的可执行文件&#xff0c…

Pytest安装

一、简介 pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:简单灵活,容易上手支持参数化能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytes…

企业网站html源代码 企业网站管理源码模板

在数字化转型加速的今天,企业官网已成为品牌展示与业务拓展的核心阵地。本文将从技术实现角度,解析企业网站HTML基础架构与管理系统的源码设计逻辑,为开发者提供可复用的模板化解决方案。 企业网站源码5000多套:Yunbuluo.Net 一…

特征工程四-1:自定义函数find_similar_docs查找最相似文档案例

find_similar_docs 函数参数详解及实际示例 函数参数说明 def find_similar_docs(query, vectorizer, doc_matrix, top_n3):参数类型说明querystr要查询的文本字符串vectorizerTfidfVectorizer已经训练好的TF-IDF向量化器doc_matrixscipy.sparse.csr_matrix文档集的TF-IDF特征…