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

分布式缓冲-Redis

请添加图片描述
个人名片:

博主:酒徒ᝰ.
个人简介沉醉在酒中,借着一股酒劲,去拼搏一个未来。
本篇励志三人行,必有我师焉。

请添加图片描述
本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 点击观看

目录

  • 一、Redis
    • 1. 介绍
    • 2. 安装

单机的Redis存在四大问题:

在这里插入图片描述

一、Redis

1. 介绍

Redis:高效内存数据存储的关键应用
在当今这个数据驱动的时代,如何快速、高效地存储和管理数据成为了一个关键问题。Redis作为一种高性能的键值对存储数据库,在许多场景下成为了首选。

一、Redis简介
Redis(Remote Dictionary Server)是由意大利人Antirez开发的一款开源的键值对存储系统。与传统的关系型数据库不同,Redis基于内存进行操作,因此具有非常高的读写速度。它支持字符串、列表、集合、有序集合和哈希表等多种数据结构,使得Redis在处理复杂数据时非常灵活。

二、Redis的特点

  • 高速读写:Redis的操作主要基于内存,使得读取和写入的速度都非常迅速。
  • 数据结构丰富:Redis支持多种数据结构,可以满足不同的应用需求。
  • 持久化机制:虽然主要基于内存操作,但Redis也支持将数据定期保存到磁盘,以防止数据丢失。
  • 主从复制:Redis支持主从复制功能,可以实现数据的备份和扩展。
  • 事务处理:Redis支持事务处理,可以在一组命令中执行多个操作,并保证操作的原子性。

三、Redis的核心技术及实现方式

  • 内存存储:Redis将所有数据存储在内存中,从而实现了高速的读写操作。
  • 哈希表:Redis使用哈希表来存储和管理键值对,使得查找和修改等操作的时间复杂度为O(1)。
  • 双端队列:Redis使用双端队列来处理网络请求,使得客户端的请求可以快速地被处理和响应。

四、Redis的应用场景

(1)缓存:Redis作为缓存层可以大大提高应用的读写速度,特别是对于读操作密集型的场景。
(2)消息队列:Redis的列表和发布订阅功能可以用于实现消息队列,帮助解决分布式系统中的消息通信问题。
(3)数据存储:对于需要快速读写、持久化保存的数据,Redis是一个很好的选择。
(4)实时数据分析:Redis支持的事务处理功能可以用于实时数据分析,提供实时的业务洞察。

五、Redis的优势

(1)高速读写:Redis的高速读写特性使其在处理高并发的数据请求时表现出色。
(2)丰富的数据结构:多种数据结构可以灵活地满足不同的应用需求。
(3)持久化机制:虽然主要基于内存操作,但Redis也支持将数据定期保存到磁盘,以防止数据丢失。
(4)主从复制:Redis支持主从复制功能,可以实现数据的备份和扩展。
(5)事务处理:Redis支持事务处理,可以在一组命令中执行多个操作,并保证操作的原子性。

六、Redis的限制

(1)数据大小限制:由于Redis是基于内存的数据库,因此其存储的数据量受限于可用内存的大小。对于需要存储大量数据的场景,可能需要考虑其他数据库。
(2)持久化成本:虽然Redis提供了持久化机制,但相对于纯内存操作,持久化会带来一定的性能开销和时间延迟。需要权衡持久化的需求和性能开销。
(3)集群部署:对于大规模的数据存储需求,需要实现Redis集群来分担数据和负载。集群的维护和管理需要额外的技术和资源投入。
(4)不支持复杂的事务操作:与关系型数据库相比,Redis的事务处理功能较弱,不支持复杂的事务操作和ACID属性。需要谨慎处理事务操作的需求。

五、Redis的实际应用案例分析

  • 案例一:电商推荐系统
    在电商平台上,用户的行为数据是非常丰富的。为了给用户提供个性化的推荐服务,可以将用户的行为数据存储在Redis中,并使用其丰富的数据结构和查询功能来快速分析和检索用户数据。根据用户的历史行为和偏好,可以生成个性化的商品推荐列表,提高用户转化率和购物体验。

  • 案例二:新闻资讯平台
    新闻资讯平台通常需要实时更新和推送最新的内容给用户。使用Redis可以将热点新闻的标题和摘要存储在内存中,以实现快速的检索和展示。同时,通过Redis的发布订阅功能,可以实时将新内容推送给订阅者,提高平台的实时性和响应速度。

  • 案例三:游戏服务器
    在游戏服务器中,玩家的状态和游戏进度需要实时更新和维护。使用Redis可以保存玩家的状态信息和游戏进度,使得多个游戏服务器可以共享和同步这些信息。同时,通过Redis的队列功能可以实现玩家指令的快速处理和响应,提高游戏体验和服务器性能。

2. 安装

首先需要安装Redis所需要的依赖:

yum install -y gcc tcl

然后将课前资料提供的Redis安装包(redis-6.2.4.tar.gz)上传到虚拟机的任意目录:

解压缩:

tar -xvf redis-6.2.4.tar.gz

进入redis目录:

cd redis-6.2.4

运行编译命令:

make && make install

过程比较漫长,如果没有出错,应该就安装成功了。
在这里插入图片描述

然后修改redis.conf文件中的一些配置:

# 绑定地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问 
bind 0.0.0.0 #在75行
# 数据库数量,设置为1 
databases 1 #在327行

启动Redis:

redis-server redis.conf

停止redis服务:

redis-cli shutdown

或者ctrl+c

http://www.lryc.cn/news/169568.html

相关文章:

  • C# 流Stream详解(3)——FileStream源码
  • C语言的文件操作(炒详解)
  • 27.基于ADS的不等分威尔金森功分器设计
  • Linux自用命令
  • clickhouse union all之后数据量不一致
  • 力扣刷题19-删除链表的倒数第N个节点
  • Unity中的简单数据存储办法
  • Pytorch-MLP-CIFAR10
  • SQL2 查询多列
  • 算法分享三个方面学习方法(做题经验,代码编写经验,比赛经验)
  • 爬虫 — 验证码反爬
  • 视频图像处理算法opencv模块硬件设计图像颜色识别模块
  • 目标检测网络之Fast-RCNN
  • Golang Gorm 创建HOOK
  • 计算机视觉的应用15-图片旋转验证码的角度计算模型的应用,解决旋转图片矫正问题
  • 【Seata】分布式事务问题和理论基础
  • 文件打包解包的方法
  • npm 清缓存(重新安装node-modules)
  • sqlserver查询表中所有字段信息
  • 二叉树的概念、存储及遍历
  • 【面试题】智力题
  • 【SpringBoot集成Redis + Session持久化存储到Redis】
  • day49:QT day2,信号与槽、对话框
  • Meta分析核心技术
  • Gof23设计模式之责任链模式
  • 数字孪生和元宇宙:打造未来的数字边界
  • 【新版】系统架构设计师 - 软件架构设计<新版>
  • Linux面试题
  • NODEJS版本管理工具
  • 【个人笔记本】本地化部署 类chatgpt模型 详细流程