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

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。

相关文章:

  • 信创系统 sudoers 权限配置实战!从小白到高手
  • 引领印尼 Web3 变革:Mandala Chain 如何助力 1 亿用户迈向数字未来?
  • 刀客独家 | 潘胜接管百度移动生态市场部
  • 【Linux】Centos7 在 Docker 上安装 mysql8.0(最新详细教程)
  • 【嘉立创EDA】如何在更新或转换原理图到PCB时,保留已有布局器件
  • QML中的色彩应用
  • .dep 和.rpm有什么区别?
  • 马哥教育Linux云计算运维课程
  • 统信操作系统使用默认yum源安装 Docker 的踩坑
  • 2025通信会丨以创新技术赋能新型电力系统 锐捷知识大脑推动效率提升
  • markdown-it-katex 安装和配置指南
  • Dify框架面试内容整理-Dify如何处理知识库的集成?
  • 【Linux系统】详解Linux权限
  • maven相关概念深入介绍
  • 《2025全球机器学习技术大会:阿里云讲师张玉明深度剖析通义灵码AI程序员》
  • 时间复杂度和空间复杂度 [数据结构 初阶]
  • Go语言--语法基础4--基本数据类型--字符串类型
  • MCU ADC参考电压变化怎么办?
  • 宝马中国再度深化AI布局,宣布正式接入DeepSeek技术
  • 【创新实训个人博客】数据库搭建
  • 北美票房|《罪人》遭媒体唱衰,好莱坞业内人士集体反击
  • 中公教育薪酬透视:董监高合计涨薪122万,员工精简近三成
  • 经济日报:多平台告别“仅退款”,规则调整有何影响
  • 汽车爆炸致俄军中将死亡嫌疑人被羁押,作案全过程披露
  • 四川落马厅官周海琦受审,1000多人接受警示教育
  • 点燃“文化活火”,上海百年街区创新讲述“文化三地”故事