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

Redis应用-在用户数据里的应用

1.社区电商的业务闭环

接下来介绍的社区电商是以Redis作为主体技术、以MySQL和RocketMQ作为辅助技术实现的。

(1)社区电商运作模式

社区电商的关键点在于社区,而电商则是辅助性质(次要地位,流量变现)。社区可以分成很多种社区,比如美食社区、美妆社区、影评社区、妈妈社区。社区平台也有很多很多,一般中小型的社区平台居多,比如体育社区、汽车社区、本地生活社区。

比如美食社区APP:用户可以分享积累的美食食谱、或者对美食看法、甚至是出门体验的一些餐馆,用户还可以浏览其他用户发出的一些美食食谱、体验、经历、科普。用户通过浏览其他用户发的帖子,对其进行互动、关注、私信、交流、成为好友。这样一部分用户就可以成立平台里的一个私密圈子,基于美食兴趣爱好进行社交活动。

美食社区APP里会有一些用户发出的帖子内容特别优质,这些帖子内容会吸引很多用户来浏览,浏览量可能会非常大。这时可以在这些帖子添加一些推荐商品,这样浏览帖子的用户就会看到推荐的商品,可以点击商品链接,进入商品详情页,发生购物行为。

(2)电商APP的feed流

feed流指的是APP不断地、主动地显示各种新内容给用户,如果用户主动搜索和浏览就不是feed流。

用户在电商APP首页不断进行下拉时:电商APP会根据用户的喜好、爆款,通过算法不停地显示一批新的内容给用户,这种展示商品的方式就是电商APP的feed流。

比如当用户进入社区电商APP的首页后,进行不停下拉时:电商APP会把用户关注过的大v、可能感兴趣的美食帖子、浏览量高的爆款帖子,通过算法不停地计算出新的一批内容显示给用户, 这就社区电商的feed流。

此外,用户还可以在社区电商APP根据条件和分页进行结构化查询。

(3)社区电商的流量变现交易闭环

对于小红书这些社区电商APP来说,当社区互动做好了之后,APP就会吸引大量流量。而对于这种有大量流量的社区APP,流量变现的最好模式就是种草。

所谓种草就是用户发布分享帖子时,可以在分享内容里插入一些商品推荐并给出商品链接。这样当其他用户在浏览这些分享帖子时,就会看到推荐的商品和链接。然后点击链接就可以进入商品详情页,查看商品标题、图文视频介绍、价格、营销、库存等。接着加入购物车并发起订单提交、支付、履约,最后就能拿到商品。

接下来主要介绍社区电商部分功能点的实现:首页feed流、帖子分享浏览详情、社交分享和团购、商品详情和库存、购物车,这些功能会基于Redis的企业级缓存方案(主要) + RocketMQ(部分)来实现。

2.Redis缓存架构的典型生产问题

Redis的典型生产问题如下:

问题一:热key问题

热key就是某个key形成了热点。比如某明星突然官宣离婚,那么就会出现大量用户瞬时涌入该明星微博进行围观的情况。从而出现瞬时百万级千万级请求去获取Redis某个key的数据,这就是热key问题。

对于社区电商APP来说,如果有一个比较好的帖子分享和团购活动,那么也有可能短时间内引发大量用户把这该帖子详情页分享到微信等社交应用。从而引发大量用户在短时间内查看该分享详情页,最后造成Redis热key问题。

问题二:大value问题

存储的key-value特别大,比如value多达10M。这个value如果被频繁读取,那么就有可能把Redis机器的网络带宽打满,阻塞别的请求。

问题三:缓存穿透击穿问题

缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求(布隆过滤器或设置空对象)。缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发请求特别多,同时读缓存没读到数据,又同时去数据库去取数据。

问题四:缓存失效和LRU被清理的问题

缓存数据设置了过期的时间,到期失效后应该如何来处理。Redis如果内存满了,LRU算法会自动淘汰一些数据,对于这些数据应该如何进行处理,如何才能实现自动加载和重建。

问题五:缓存雪崩问题

缓存雪崩是指缓存中数据大批量到过期时间,而查询量巨大,引起数据库压力过大甚至宕机。和缓存击穿不同的是:缓存击穿是指并发查同一条数据,缓存雪崩是不同数据都过期了。

如果Redis集群都崩掉了,只有数据库可以访问。那么首先就需要自动识别出缓存故障,然后马上进行限流对数据库进行保护,不让数据库崩溃,以及马上启动各个接口的降级机制。

各个接口的降级机制可以提前在JVM内存里,准备少量缓存作为降级备用数据。所以每个接口都需要有一个降级方案,一旦出现缓存故障,那么就可以自动限流避免数据库崩溃。

限流 -> 降级 -> 把JVM内存里缓存的默认数据给用户或者 直接对用户进行提醒。

问题六:数据库的一致性问题

缓存数据和数据库之间的一致性的保障,双写、异步同步如何保证一致性。

Redis生产总结:

Redis上了生产以后,首先需要模拟出足量的数据写入Redis里,比如模拟出千万级数据量写入部署好的Redis集群中。然后进行高并发压测,并通过CacheCloud进行监控运维。监控出有多少个缓存节点、里面放了多少G数据、大压力下接口性能如何、QPS多少、Redis机器负载如何、缓存命中率如何、数据库回源比例是多少、演示Redis节点故障的主从切换、演示Redis集群扩容等。

3.用户数据在读多写少场景下的缓存设计

具体的缓存设计如下:

一.新增或更新用户时先获取分布式锁,避免短时间发生多次请求出现重复新增

相关文章:

Redis应用-在用户数据里的应用

1.社区电商的业务闭环 接下来介绍的社区电商是以Redis作为主体技术、以MySQL和RocketMQ作为辅助技术实现的。 (1)社区电商运作模式 社区电商的关键点在于社区,而电商则是辅助性质(次要地位,流量变现)。社区可以分成很多种社区,比如美食社区、美妆社区、影评社区、妈妈社区…...

C++ 中面向对象编程如实现数据隐藏

在C中,面向对象编程(OOP)通过封装(Encapsulation)来实现数据隐藏。封装是OOP的一个核心概念,它允许将对象的属性和行为(即数据和方法)组合在一起,并对外隐藏对象的内部实…...

JavaEE 【知识改变命运】04 多线程(3)

文章目录 多线程带来的风险-线程安全线程不安全的举例分析产出线程安全的原因:1.线程是抢占式的2. 多线程修改同一个变量(程序的要求)3. 原子性4. 内存可见性5. 指令重排序 总结线程安全问题产生的原因解决线程安全问题1. synchronized关键字…...

gz中生成模型

生成模型 通过服务调用生成 还记得parameter_bridge 吗? 我们在生成桥接的时候调用了这个cpp文件。 一个 parameter_bridge 实例用于消息传递(传感器数据)。之前的例子 另一个 parameter_bridge 实例用于服务桥接(动态生成模型…...

前端(Axios和Promis)

Promise 语法 <script>// 创建promise对象// 此函数需要再传入两个参数,都是函数类型let pnew Promise((resolve,reject)>{if(3>2){resolve({name:"李思蕾",age:23,地址:"河南省"});}else{reject("error");}});console.log(p);p.th…...

AI Agent:重塑业务流程自动化的未来力量(2/30)

《AI Agent&#xff1a;重塑业务流程自动化的未来力量》 摘要&#xff1a;整体思路是先介绍 AI Agent 的基本情况&#xff0c;再深入阐述其实现业务流程自动化的方法和在不同领域的应用&#xff0c;接着分析其价值和面临的挑战&#xff0c;最后得出结论&#xff0c;为读者全面…...

前端页面导出word

html-docx-js bug: vite使用html-docx.js会报错&#xff0c;点击下载上方文件替换即可 正文 npm install html-docx-js -S npm install file-saver -S<template><div id"managerReport">word内容......</div> </template><script>&l…...

【考前预习】1.计算机网络概述

往期推荐 子网掩码、网络地址、广播地址、子网划分及计算-CSDN博客 一文搞懂大数据流式计算引擎Flink【万字详解&#xff0c;史上最全】-CSDN博客 浅学React和JSX-CSDN博客 浅谈云原生--微服务、CICD、Serverless、服务网格_云原生 serverless-CSDN博客 浅谈维度建模、数据分析…...

ubuntu20.04复现 Leg-KILO

这里写目录标题 opencv版本问题下载3.2.0源代码进入解压后的目录创建构建目录运行 CMake 配置 配置时指定一个独立的安装目录&#xff0c;例如 /opt/opencv-3.2&#xff1a;出错&#xff1a; 使用多线程编译错误1&#xff1a; stdlib.h: 没有那个文件或目录错误2&#xff1a;er…...

Ensembl数据库下载参考基因组(常见模式植物)bioinfomatics 工具37

拟南芥参考基因组_拟南芥数据库-CSDN博客 1 Ensembl数据库网址 http://plants.ensembl.org/index.html #官网 如拟南芥等 那么问题来了&#xff0c;基因组fa文件和gff文件在哪里&#xff1f; 2 参考案例 拟南芥基因组fa在这里 注释gff文件在这里...

简单介绍web开发和HTML CSS_web网站开发流程

一、Web 开发&#xff1a;探索互联网世界的基石 1.1 什么是 Web 开发 Web 开发&#xff0c;简单来说&#xff0c;就是构建能够通过浏览器访问的网站的过程。Web 代表着全球广域网&#xff0c;也就是我们熟知的万维网&#xff08;www&#xff09;&#xff0c;它连接着世界各地的…...

Docker 中使用 PHP 通过 Canal 同步 Mysql 数据到 ElasticSearch

一、Mysql 的安装和配置 1.使用 docker 安装 mysql&#xff0c;并且映射端口和 root 账号的密码 # 获取镜像 docker pull mysql:8.0.40-debian# 查看镜像是否下载成功 docker images# 运行msyql镜像 docker run -d -p 3388:3306 --name super-mysql -e MYSQL_ROOT_PASSWORD12…...

数据结构之五:排序

void*类型的实现&#xff1a;排序&#xff08;void*类型&#xff09;-CSDN博客 一、插入排序 1、直接插入排序 思想&#xff1a;把待排序的数据逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为止&#xff0c;得到一个新的有序序列 。 单趟&#x…...

科研绘图系列:R语言绘制热图和散点图以及箱线图(pheatmap, scatterplot boxplot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载图1图2图3系统信息参考介绍 R语言绘制热图和散点图以及箱线图(pheatmap, scatterplot & boxplot) 加载R包 library(magrittr) library(dplyr) library(ve…...

基于 webRTC Vue 的局域网 文件传输工具

文件传输工具&#xff0c;匿名加密&#xff0c;只需访问网页&#xff0c;即可连接到其他设备&#xff0c;基于 webRTC 和 Vue.js coturn TURN 服务器 docker pull coturn/coturn docker run -d --networkhost \-v $(pwd)/my.conf:/etc/coturn/turnserver.conf \coturn/coturn…...

LeetCode 718. 最长重复子数组 java题解

https://leetcode.cn/problems/maximum-length-of-repeated-subarray/description/ 动态规划 class Solution {public int findLength(int[] nums1, int[] nums2) {int len1nums1.length,len2nums2.length;int[][] dpnew int[len11][len21];dp[0][0]0;//没有意义&#xff0c;…...

算法知识-15-深搜

一、概念 深度优先搜索&#xff08;Deep First Search, DFS&#xff09;是一种用于遍历或搜索树或图的算法。这种策略沿着树的深度遍历树的节点&#xff0c;尽可能深地搜索树的分支。 二、关键步骤 选择起点&#xff1a;根据题目要求&#xff0c;选择一个或多个节点作为搜索…...

区块链dapp 开发详解(VUE3.0)

1、安装metamask 插件。 2、使用封装的工具包: wagmi . 3、 wagmi 操作手册地址:connect | Wagmi 4、注意事项&#xff1a; 因为最初是react 版本&#xff0c;所以在VUE版的官方文档有很多地方在 import 用的是 wagmi,需要改为 wagmi/vue 。 连接成功后打印的内容如下&…...

Plugin [id: ‘flutter‘] was not found in any of the following sources解决方法

文章目录 错误描述解决方法修正方案&#xff1a;继续使用 apply from修正后的 build.gradle说明警告的处理进一步验证 错误描述 Plugin [id: ‘flutter’] was not found in any of the following sources: Gradle Core Plugins (not a core plugin, please see https://docs…...

专升本-高数 1

第 0 章&#xff0c;基础知识 一&#xff0c;重要公式 1、完全平方 (ab)a2abb (a-b)a-2abb 2、平方差公式 &#xff08;a-b&#xff09;(ab)a-b 3、立方差公式 a-b(a-b)(aabb) 4、 立方和公式 ab(ab)(a-abb) 二&#xff0c;基本初等函数 1&#xff0c;幂函数 一元二…...

Chatbox:构建企业级AI助手客户端的3个架构设计关键

Chatbox&#xff1a;构建企业级AI助手客户端的3个架构设计关键 【免费下载链接】chatbox Powerful AI Client 项目地址: https://gitcode.com/GitHub_Trending/ch/chatbox Chatbox作为一款开源的多模型AI桌面客户端&#xff0c;通过创新的技术架构设计&#xff0c;解决了…...

【研报291】2026年全球新车研究:超跑与高端新车动态

本报告提供限时下载&#xff0c;请查看文后提示以下仅为报告部分内容&#xff1a;摘要&#xff1a;2026 年全球汽车行业迎来密集的新车发布周期&#xff0c;涵盖豪华超跑、主流纯电车型、入门平价电动车等全品类产品&#xff0c;包括宝马新 NEUE KLASSE 平台车型、保时捷纯电卡…...

OCRmyPDF实战指南:加密PDF文件处理全流程解析

OCRmyPDF实战指南&#xff1a;加密PDF文件处理全流程解析 【免费下载链接】OCRmyPDF OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched 项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF 在数字化办公环境中&#xff0c…...

LFM2.5-1.2B-Thinking-GGUF保姆级教程:Windows/Mac/Linux三平台本地部署

LFM2.5-1.2B-Thinking-GGUF保姆级教程&#xff1a;Windows/Mac/Linux三平台本地部署 1. 平台介绍 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的一款轻量级文本生成模型&#xff0c;特别适合在资源有限的设备上快速部署和使用。这个模型采用了GGUF格式&#xff0c;配合llama.c…...

嵌入式电机控制基础库:DC/步进/BLDC寄存器级驱动解析

1. 项目概述“Motor”是一个面向教育与工程实践的嵌入式电机控制基础库&#xff0c;由奥地利HTL-Graz-Gssing&#xff08;现为HTL Graz-Gssing&#xff0c;原Bertl2014教学项目&#xff09;开发并维护&#xff0c;专为中等技术学校&#xff08;HTL&#xff09;电子与自动化专业…...

Omni-Vision Sanctuary赋能Claude等对话Agent:实现文本对话到视觉创作的延伸

Omni-Vision Sanctuary赋能Claude等对话Agent&#xff1a;实现文本对话到视觉创作的延伸 1. 引言&#xff1a;当语言模型遇上视觉创作 想象一下这样的场景&#xff1a;你正在和Claude讨论一个创意方案&#xff0c;描述着脑海中的画面——"我想要一个未来感十足的城市夜景…...

OpenClaw跨平台实战:Mac与Windows双端配置Qwen3-4B

OpenClaw跨平台实战&#xff1a;Mac与Windows双端配置Qwen3-4B 1. 为什么选择OpenClawQwen3-4B组合 去年我在整理个人知识库时&#xff0c;发现手动处理上千份PDF和网页存档效率极低。尝试过各种自动化工具后&#xff0c;最终被OpenClaw的"AI直接操控电脑"理念吸引…...

Android架构实战指南:如何将MVP+RxJava应用到现有项目的完整教程

Android架构实战指南&#xff1a;如何将MVPRxJava应用到现有项目的完整教程 【免费下载链接】android-guidelines Architecture and code guidelines we use at ribot when developing for Android 项目地址: https://gitcode.com/gh_mirrors/an/android-guidelines 想要…...

VSCode + WSL2开发环境搭建:Windows10下的高效Linux开发体验

VSCode WSL2开发环境搭建&#xff1a;Windows10下的高效Linux开发体验 在Windows系统上进行Linux开发一直是件令人头疼的事情——双系统切换麻烦&#xff0c;虚拟机性能堪忧&#xff0c;远程服务器又受限于网络环境。直到微软推出WSL2&#xff08;Windows Subsystem for Linux…...

网站seo排名工具有哪些

网站SEO排名工具有哪些&#xff1f;详细解析与实用建议 在互联网时代&#xff0c;网站的SEO&#xff08;搜索引擎优化&#xff09;已经成为提升网站流量和品牌知名度的关键手段。为了帮助网站管理者和数字营销人员更好地进行SEO优化&#xff0c;市面上涌现了各种各样的SEO排名…...