【Redis】专栏合集,从入门到高级业务场景实战

作者简介

目录

1.概述

2.下载安装

3.基础操作

4.集群

5.实战场景


1.概述

诸如数mysql、Oracle之类的关系型数据库或者NTFS、HDFS之类的文件存储系统,其本质上数据都是存在磁盘上的。这是现代计算机体系架构的架构所决定的,要持久化存储的数据都会落磁盘。但是正如我们所知的,访问磁盘是个很慢的操作,很显然如果在软件系统中每次访问数据都走磁盘,系统的吞吐量会很差,内存数据库的出现是为了提升数据访问的速度,拉升整个系统的性能。将数据存在内存中,访问内存要比访问磁盘要快得多。Redis(Remote Dictionary Server)应该说是目前为止用的对多的内存数据库。本文是博主Redis系列专栏的合集,每个章节就对应一到多篇文章,从Redis的基础操作一直将到高级场景。

2.下载安装

文章链接:

Linux安装redis(含报错解决)_linux下安装redis常见错误__BugMan的博客-CSDN博客

上文中会详细介绍Linux环境中Redis的下载安装,redis的整个下载安装过程不算麻烦,需要注意的

是Redis是C语言写的,需要先进行编译才可以使用,编译和服务器环境是相关的,有时候编译会过不了,文中针对常见的编译报错如何处理进行了讲解。

3.数据操作

文章链接:

【Redis】五大基本数据类型操作大全__BugMan的博客-CSDN博客

Redis支持多种数据类型,包括字符串、列表、集合、有序集合、散列等。这些数据类型使得Redis非常适合解决各种不同的问题。上面文章中将会详细介绍Redis的数据基础操作。

Redis一共提供了五种数据结构:String、List、Hash、Set、zSet。

很多时候无法记全这五种数据结构,这里教大家一种办法,这样来记忆即可:

  • Redis是一个KV形式的内存数据库,所以其数据组织方式其实就是以KV为基准然后进行扩展,由KV的一对一到List的一对多再到Map的一类KV的集合。
  • 实际业务场景中,Redis中存的数据很可能具有唯一性(比如用户信息)或者顺序性(比如需要根据用户VIP等级来顺序拿用户),所以额外提供了"辨重"、"排序"的两种数据结构。

于是有String,1key对1value;List,1key对多value;Hash,1key对1类kv,Set,去重的List;zSet可排序的List。

上面文章中将会对Redis各类数据结构的操作做详细讲解。

4.集群

文章链接:

redis 主从复制(读写分离)集群搭建(含错误处理)__BugMan的博客-CSDN博客

redis集群详细搭建方式(含原理、操作指令、异常处理)_创建redis集群__BugMan的博客-CSDN博客

redis解除(删除)主从关系_redis取消主从__BugMan的博客-CSDN博客

Redis的集群搭建主要分为两类:

  • 读写分离集群
  • 分片集群

读写分离集群是在垂直方向上分散压力:

分片集群是在水平方向上分散压力:

上面的文章中将会详细讲解两种集群的架构和搭建方法。

5.实战业务场景和问题

文章链接:

redis的热key、大key_redis 大key 热key__BugMan的博客-CSDN博客

Redis常用的业务场景:

  1. 缓存:Redis最常见的用途之一是作为缓存。它可以存储热门数据,如数据库查询结果、API调用响应或计算结果,以提高读取速度,减轻后端数据库或服务的负载。

  2. 会话管理:Redis可用于存储用户会话数据,以实现分布式Web应用程序的会话管理。这允许用户在多个应用服务器之间保持相同的会话状态。

  3. 计数器和排行榜:Redis的原子操作使其非常适合构建计数器和排行榜。你可以轻松地实现点赞计数、访问次数统计、排行榜等功能。

  4. 分布式锁:Redis的SETNX命令可以用于实现分布式锁,防止多个客户端同时修改共享资源,确保数据的一致性和安全性。

  5. 用户会话队列:Redis可用于构建聊天应用程序、消息队列、通知系统等需要实时性的应用。

  6. 配置管理:Redis可用于动态配置管理,允许实时更改应用程序配置参数,而无需重新启动应用。

在实际业务场景中,Redis相关的经典性能问题会有两个:

  • 热key
  • 大key

上面的文章中会详细介绍如何处理热key和大key。

相关推荐
逊嘘6 分钟前
【Java语言】抽象类与接口
java·开发语言·jvm
morris13113 分钟前
【SpringBoot】Xss的常见攻击方式与防御手段
java·spring boot·xss·csp
十叶知秋26 分钟前
【jmeter】jmeter的线程组功能的详细介绍
数据库·jmeter·性能测试
monkey_meng37 分钟前
【Rust中多线程同步机制】
开发语言·redis·后端·rust
七星静香38 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
Jacob程序员39 分钟前
java导出word文件(手绘)
java·开发语言·word
ZHOUPUYU39 分钟前
IntelliJ IDEA超详细下载安装教程(附安装包)
java·ide·intellij-idea
stewie643 分钟前
在IDEA中使用Git
java·git
Elaine2023911 小时前
06 网络编程基础
java·网络
G丶AEOM1 小时前
分布式——BASE理论
java·分布式·八股