【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。

相关推荐
cat三三19 分钟前
java之异常
java·开发语言
不穿格子的程序员24 分钟前
Redis篇6——Redis深度剖析:从单机到集群,Redis高可用进化史
数据库·redis·集群·主从·高可用·哨兵
浙江第二深情24 分钟前
前端性能优化终极指南
java·maven
阿坤带你走近大数据37 分钟前
什么是元数据管理?(附具体实施方案供参考)
数据库·金融
养乐多072240 分钟前
【Java】IO流
java
俊男无期40 分钟前
超效率工作法
java·前端·数据库
2301_8234380241 分钟前
【无标题】解析《采用非对称自玩实现强健多机器人群集的深度强化学习方法》
数据库·人工智能·算法
中国胖子风清扬1 小时前
SpringAI和 Langchain4j等 AI 框架之间的差异和开发经验
java·数据库·人工智能·spring boot·spring cloud·ai·langchain
月明长歌1 小时前
【码道初阶】牛客TSINGK110:二叉树遍历(较难)如何根据“扩展先序遍历”构建二叉树?
java·数据结构·算法