Redis
文章平均质量分 85
Android_la
Java入门到进阶级别
展开
-
电商高并发设计之SpringBoot整合Redis实现布隆过滤器
本篇的代码都是参考SpringBoot+Redis布隆过滤器防恶意流量击穿缓存的正确姿势,可以先看看该篇文章。本篇的行文思路分别由以下几个模块构成:布隆过滤器原理、使用场景、基础中间件搭建、如何实现布隆过滤器阅读本篇前,需要知道布隆过滤器的原理、简单的Docker知识,阅读起来能更加高效。效果:上面代码中,可以看见底层使用的是redis的bitmap,120w数据存在Redis仅需8M。查询一次仅需几十毫秒。优点:空间效率高;;查询时间快;支持高并发。缺点:存在一定的误判率;原创 2023-08-02 17:44:19 · 1096 阅读 · 0 评论 -
电商项目之Redis实现限制接口调用次数
本方案是笔者自己想出来的,还未经过生产环境的考验,如有不正确的地方欢迎在评论区中指出。原创 2023-03-30 23:17:37 · 599 阅读 · 0 评论 -
Redis过期键的删除策略
项目中用到Redis,得了解下Redis过期键的删除策略,他是否能做到实时删除的?参考自《Redis的设计与实现》这个PDF电子书。采用惰性删除+定期删除。原创 2023-03-26 21:08:24 · 422 阅读 · 0 评论 -
SpringBoot整合LUA脚本实现过期时间原子性操作
本篇仅从最简单的实现方式去介绍,可以以此参考来实现自己想要的LUA脚本功能本篇使用的是伪代码,不需要过于纠结变量如何初始化等。原创 2023-02-01 21:59:33 · 997 阅读 · 0 评论 -
关于电商库存的读取
文章目录一. 问题背景二. 前言三. 创建订单四. 加载sku信息并锁库存五. 获取库存的代码六. 为什么获取库存的时候要用分布式锁?七. 为什么要做两个判null?八. Redis分布式锁一. 问题背景背景起因在单例模式之懒加载模式。对懒加载不熟悉的伙伴推荐先阅读单例模式之懒加载模式。此篇只对电商库存做分析。二. 前言电商的库存是用redis做缓存来解决的,估计是应对秒杀活动时页面流量很高,频繁读取数据库效果不佳,也会出现超卖现象。三. 创建订单获取库存的缘于创建订单,如下是创建订单涉及到的原创 2021-03-12 15:04:48 · 400 阅读 · 0 评论 -
Redis Cluster设计规范
文章目录一. 问题背景二. 前言三. Redis Cluster设计规范3.1 Redis Cluster的目标3.2 子集3.3 Redis Cluster协议中的客户端和服务器角色3.4 写安全3.5 可用性3.6 表现一. 问题背景做好了基于Docker搭建Redis集群后,用Redis集群做了很多实验,得到的实验结果并不符合网上的很多理论。因此深入了解Redis Cluster架构以及设计规范,解开了很多疑惑。如果对Redis架构演变不了解,阅读本文章前推荐先阅读关于Redis的架构。.原创 2021-02-21 22:37:31 · 146 阅读 · 0 评论 -
SpringBoot整合Redis集群读写分离(Lettuce客户端)
文章目录一. 问题背景二. 版本说明三. 前言四. 如何实现读写分离?五. 动手实现读写分离5.1 整合Lettuce5.1 向Spring注册连接组件5.2 测试一. 问题背景前面研究了SpringBoot整合Redis集群(Lettuce客户端),然后尝试玩玩读写分离,客户端使用Lettuce(SpringBoot2.x已经默认支持Lettuce了,就不再研究Jedis客户端了)。虽然最新版的Redis Cluster集群架构不推荐读写分离,但是还是想玩玩。文末提供源码参考自:Redis.原创 2021-02-15 22:36:01 · 5511 阅读 · 0 评论 -
SpringBoot整合Redis集群(Lettuce客户端)
文章目录一. 问题背景二. 搭建好Redis集群三. SpringBoot整合Redis集群3.1 引入依赖3.2 配置Redis集群信息3.3 自定义Redis相关的组件3.4 封装Redis操作的类3.5 封装Redis操作的实现类3.6 测试3.6.1 创建一个业务逻辑类3.6.2 创建一个controller3.7 测试一. 问题背景研究完基于Docker搭建Redis集群,开始用SpringBoot整合Redis集群,没有想象中的那么难,和SpringBoot整合Redis(Lettuce.原创 2021-02-15 16:13:50 · 4123 阅读 · 3 评论 -
SpringBoot整合Redis(Lettuce客户端)
文章目录一. 问题背景二. 版本说明三. 解决方案3.1 引入依赖3.2 配置Redis3.3 封装关于Redis的操作3.3.1 定义接口3.3.2 实现接口3.4 测试前期准备3.4.1 创建controller层3.4.2 创建Service层3.5 部署Redis3.5.1 安装Redis3.5.2 配置redis.conf3.5.3 创建并启动Redis容器3.6 测试一. 问题背景了解完了Redis的集群架构后,尝试动手写代码,SpringBoot整合Redis。Redis的客户端采用J.原创 2021-02-15 14:28:23 · 448 阅读 · 0 评论 -
基于Docker搭建Redis集群
文章目录一. 问题背景二. 前言三. 集群地址四. 部署Redis4.1 拉取Redis镜像4.2 准备配置文件4.2.1 创建数据卷路径4.2.2 修改redis.conf配置文件4.2.3 上传配置文件4.3 创建容器4.5 启动容器五. 部署集群5.1 进入容器5.2 创建集群5.3 注意事项5.3.1 手动配置主从六. 测试Redis集群七. Redis集群的某些常用操作命令一. 问题背景研究完关于Redis的架构,现在动手搭建一个Redis集群试一下参考自:基于Docker搭建Redi.原创 2021-02-12 23:05:08 · 625 阅读 · 0 评论 -
分布式共识算法之Raft算法
文章目录一. 问题背景二. 知识储备2.1 共识算法2.2 CAP定理三. 前言四. Raft和Paxos的因缘?五. Raft原理5.1 节点个数5.2 节点的角色5.3 多数派协议5.4 随机超时机制5.5 正常情况下,Raft集群是怎么样的?5.6 Candidate的日志长度要等于或者超过半数节点才能选为Leader5.7 为什么不是检查Commit Index?5.8 Followers日志补齐5.9 Followers未提交日志的更新5.10 新旧Leader的交替5.10.1 Term5.1.原创 2021-02-11 23:18:48 · 1431 阅读 · 1 评论 -
Day15——redis的集群
一. 知识储备原创 2020-02-20 14:42:46 · 110 阅读 · 0 评论 -
Day14——redis的主从复制
一. 知识储备原创 2020-02-20 14:37:04 · 100 阅读 · 0 评论 -
Day13——redis的aof
一. 知识储备原创 2020-02-19 14:49:09 · 82 阅读 · 0 评论 -
Day12——redis的rdb
一. 知识储备原创 2020-02-19 14:45:45 · 74 阅读 · 0 评论 -
Day11——redis实现秒杀
一. 知识储备原创 2020-02-19 13:26:09 · 136 阅读 · 0 评论 -
Day10——redis事务
一. 知识储备原创 2020-02-19 11:39:27 · 147 阅读 · 0 评论 -
Day9——用redis实现校验码
一. 知识储备原创 2020-02-19 11:19:16 · 128 阅读 · 0 评论 -
Day8——redis的zset
一. 知识储备原创 2020-02-18 15:03:52 · 94 阅读 · 0 评论 -
Day7——redis的hash
一. 知识储备原创 2020-02-18 14:41:20 · 98 阅读 · 0 评论 -
Day6——redis的set
一. 知识储备原创 2020-02-18 14:14:29 · 100 阅读 · 0 评论 -
Day5——redis的list
一. 知识储备原创 2020-02-18 13:58:51 · 94 阅读 · 0 评论 -
Day4——redis的string
一. 知识储备原创 2020-02-18 13:45:36 · 77 阅读 · 0 评论 -
Day3——redis的key
一. 知识储备原创 2020-02-18 13:19:19 · 161 阅读 · 0 评论 -
Day2——redis简介安装
一. 简介二. 安装步骤使用Xft连接到虚拟机的linux系统上,进入/opt目录,将redis-3.2.5.tar.gz文件从本地机上传到linux机,如下:使用Xshell连接到linux,进入/opt目录,使用tar -zxvf redis-3.2.5.tar.gz解压文件解压后,进入解压出来的文件夹redis-3.2.5,进入src文件夹发现里面的都是.c或者...原创 2020-02-18 12:16:03 · 311 阅读 · 0 评论 -
Day1——Nosql简介
一. 知识储备原创 2020-02-18 11:35:36 · 103 阅读 · 0 评论