Redis -- 背景知识

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis -- 背景知识


 Redis是在内存中存储数据的一个中间件,用作为数据库,也可以用作为缓存,在分布式中有很高的威望。

特性

  • In-memory data structures:在内存中存储数据
  • key-value model:使用键值对的存储方式,是一种非关系型数据库(相较于MySQL等数据库以表的形式
  • Programmability:针对redis的操作,可以直接通过简单的交互式命令进行操作,也可以使用脚本的方式,批量进行操作
  • Extensibliity:可拓展性,可以在redis原有的基础上再进行扩展,可以通过c,c++等语言编写Redis扩展
  • Presistence:数据持久化,将数据保存在内存中以便更快速的访问,但是内存中的数据是易失的,redis会将数据存储在硬盘上,内存为主硬盘为辅,redis会将数据备份在硬盘中方便在异常状况后恢复数据
  • Clustering:水平扩展,类似于分库分表。一个 Redis 能存储的数据是有限的 (内存空间有限) 引入多个主机,部署多个 Redis 节点每个 Redis 存储数据的一部分
  • High availability:高可用,Redis自身也是支持主从结构,从节点就相当于主节点的备份。

为啥Redis快?

  • Redis数据存储在内存中,访问速度比硬盘快
  • Redis核心功能都是比较简单的逻辑
  • 从网络角度,Redis使用的io多路复用(使用一个线程管理多个socket
  • Redis是使用的单线程模型,减少了线程之间不必要的竞争开销

应用场景

  • 键值对数据库:实时性更高,速度要求更快的场景
  • 使用Redis存储热点数据
  • 会话存储
  • 实现网络版本的消息队列(生产者消费者模型

Redis不能做什么?

       实际上和任何一门技术一样,每个技术都有自己的应用场景和边界,也就是说 Redis 并不是万金油,有很多合适它解决的问题,但是也有很多不合适它解决的问题。我们可以站在数据规模和数据冷热的角度来进行分析。

       站在数据规模的角度看,数据可以分为大规模数据和小规模数据,我们知道 Redis 的数据是存放在内存中的,虽然现在内存已经足够便宜,但是如果数据量非常大,例如每天有几亿的用户行为数据,使用 Redis 来存储的话,基本上是个无底洞,经济成本相当高。

       站在数据冷热的角度,数据分为热数据和冷数据,热数据通常是指需要频繁操作的数据,反之为冷数据,例如对于视频网站来说,视频基本信息基本上在各个业务线都是经常要操作的数据,而用户的观看记录不一定是经常需要访问的数据,这里暂且不讨论两者数据规模的差异,单纯站在数据冷热的角度上看,视频信息属于热数据,用户观看记录属于冷数据。如果将这些冷数据放在 Redis 上,基本上是对于内存的一种浪费,但是对于一些热数据可以放在 Redis 中加速读写,也可以减轻后端存储的负载,可以说是事半功倍

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
打赏
0
0
0
0
5
分享
相关文章
|
3月前
|
为什么越来越多的企业选择Redis?简述Redis生平
Redis(Remote Dictionary Server)是一个开源的内存数据库管理系统,支持数据库、缓存和消息中间件功能。Redis 由 Salvatore Sanfilippo 于2009年创建,历经多个版本迭代,引入了如持久化、集群、事务等功能。Redis 支持多种数据结构(字符串、列表、集合等),并提供高可用性和水平扩展能力。广泛应用于 Twitter、GitHub 等知名网站。
89 1
|
7月前
|
Redis 相关背景
Redis 是一款开源的内存数据存储系统,常被用作数据库、缓存或消息中间件,在分布式环境中展现强大优势。它支持多种数据结构如字符串、哈希表、列表等,并提供简单直观的操作接口及脚本执行功能。Redis 以其快速访问速度著称,得益于内存存储、高效的单线程模型及I/O多路复用技术。它具备数据持久化能力,确保重启后数据可恢复。同时支持集群部署,实现数据分片和高可用性,适合高并发环境。Redis 在需要高性能读写、实时数据处理或缓存加速的应用场景中表现优异,如会话存储、热点数据缓存等,但受限于内存容量,不适于存储大规模数据。
65 5
Redis 相关背景
Redis基础
redis下载、安装、启动、五种数据类型、常用命令、springboot使用Redis、lettucs、jedis
Redis系列学习文章分享---第一篇(Redis快速入门之初始Redis--NoSql+安装redis+客户端+常用命令)
Redis系列学习文章分享---第一篇(Redis快速入门之初始Redis--NoSql+安装redis+客户端+常用命令)
186 1
Redis学习基础
【1月更文挑战第6天】 一、Redis介绍 二、Redis各种常用命令 1.Redis服务启动命令: 2.Redis通用命令 3.Redis字符串类型常用命令: 4.Redis哈希操作命令 5.Redis列表操作命令 6.Redis集合操作命令 7.Redis有序集合操作命令 三、Redis在JAVA中的使用步骤 1.Redis在JAVA中的配置 2.Redis在JAVA中的具体使用 1.字符串类型的使用 2.哈希类型的使用 3.列表类型的使用 4.集合类型的使用 5.有序集合类型的使用
73 10