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

零基础学习Redis(1) -- Redis简介

Redis是一个在内存中存储数据的一个中间组件,可用作数据库或数据缓存,通常在分布式系统中使用

(不了解分布式? 点击传送)

1. Redis特性

  1. 在内存中存储数据,通过键值对的方法存储key为string,value可以是多种数据类型
  2. Redis可以通过一些简单的交互命令执行操作,也可以通过脚本(Lua)的方式批量执行操作
  3. 扩展性,Redis提供了一组API用于程序员自己扩展一些Redis的功能
  4. 持久化,Redis是把数据存储在内存中的,同时会在硬盘中备份数据,防止数据丢失
  5. 支持水平扩展,即一个redis存不下数据,可以引入多个主机分别存储数据的一部分
  6. 高可用,Redis支持主从结构,如果主Redis出现故障从Redis可以马上替补上,提高了容错
  7. 快,Redis把数据存储在内存中,访问内存是比访问硬盘快的多的
  8. 由于内存成本比硬盘高很多,所以通常不使用Redis存储大规模数据

2. 适用场景 

2.1 作为数据库 

大多数情况下使用数据库考虑的是数据库的容量,但仍有一些场景更注重数据库的读写性能。在这样的场景下就可以使用Redis存储数据以追求高性能。

2.2 作为缓存或存储session

互联网行业存在一个二八原则的说法:20%的热点数据可以支持80%的请求。
于是可以使用Redis存储一些经常被访问的数据 ,而整体的数据可以使用MySQL存储,这样即可以兼顾存储容量与访问速度。

在分布式系统中存在一个会话跟踪的问题:

在这个情况下,如果把session存储在服务器中,用户第一登录时假设在 1号服务器登录的,那么会话数据就存在了1号服务器中,如果用户下次登录时服务端要查询到会话信息有两种方法:

  • 1. 把客户端连接再次分配给应用服务器1,也就是让均衡负载把同一个用户的请求始终发送到同一台服务器上
  • 2. 把会话数据单独存储在一个独立的服务器上

这样无论哪个服务器收到请求都可以在会话服务器中查询会话信息,即便应用服务器故障重启了,会话信息也不会丢失。

2.3 作为消息队列

这里的消息队列可以理解为一个网络版本的生产者消费者模型,用于服务器和服务器之间的数据信息传递,可以达到一个解耦合的效果

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

相关文章:

  • 安装MySQL数据库【后端 8】
  • JAVA学习-练习试用Java实现“整数转换英文表示”
  • TPshop商城的保姆教程(Ubuntu)
  • MySQL存储过程、触发器、视图
  • 每一行txt文件的内容将作为CSV文件中的一行,逗号、空格和句号,冒号作为分隔符拆分成多列
  • 基于inotif的文件同步备份
  • luckyexcel 编辑预览excel文件
  • 记录Java使用websocket
  • (javaweb)分层解耦
  • 2024华为数通HCIP-datacom最新题库(H12-831变题更新⑨)
  • PCIe学习笔记(21)
  • 分享Embedding 模型微调的实现
  • TED: 1靶场复现【附代码】(权限提升)
  • Python(TensorFlow)衍射光学层卷积算法模拟(英伟达GPU)
  • iOS开发进阶(二十二):Xcode* 离线安装 iOS Simulator
  • Prostgresql的Timescaledb插件/扩展部署
  • 分布式知识总结(一致性Hash算法)
  • 图数据库在社交网络分析中的应用
  • Git基础使用教程
  • 技术速递|Python in Visual Studio Code 2024年8月发布
  • 【话题】重塑未来:AI辅助编程对程序员工作的影响与应对策略
  • 在Debian上安装freeswitch
  • 论文分享 | Fuzz4All: 基于大语言模型的通用模糊测试
  • VS Code 配置docker 管理员权限终端
  • 使用Linux实现FTP云盘1
  • tombo resquiggle
  • vue3获取vue实例 并注册全局属性方法
  • function calling后,如何让大模型进行自然语言输出?
  • Android笔试面试题AI答之Kotlin(8)
  • LVS服务的搭建之NAT模式、DR模式的搭建实战