![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 52
腌制99%的咸鱼
这个作者很懒,什么都没留下…
展开
-
《Redis设计与实现》阅读笔记——数据结构与对象
简单动态字符串redis的底层是C语言,但是没有简单的使用C语言传统的以空字符结尾的字符数组表示字符串。使用的是SDS表示字符串。struct sdshdr { //记录buf数组中已经使用的字节数量,等于SDS保存字符串长度(去除了结尾空字符串) int len; //记录buf中未使用的字节的数量 int free; //字节数组,保存字符串 char buff[];}1.1 SDS与C字符串区别常数复杂度获取字符串长度杜绝缓冲区溢出对buff进行操作的时候,若剩余空间不够,原创 2021-08-15 19:13:09 · 76 阅读 · 0 评论 -
8、防刷限流技术
10.1 本章目标掌握验证码生成与验证技术掌握限流原理与实现掌握防黄牛技术10.2 验证码技术包装秒杀令牌前置,需要验证码来错峰数学公式验证码生成器Util包内的CodeUtilpackage com.miaoshaproject.util;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.awt.i原创 2020-09-14 01:13:26 · 262 阅读 · 0 评论 -
7、流量削峰技术
本章目标掌握秒杀令牌的原理和使用方式掌握秒杀大闸的原理和使用方式掌握队列泄洪的原理和使用方式抛缺陷:秒杀下单接口会被脚本不停的刷秒杀验证逻辑和秒杀下单接口强关联,代码冗余度高秒杀下单和对活动是否开始是没有关联的,接口关联过高秒杀验证逻辑复杂,对交易系统产生无关联负载9.2秒杀令牌实现秒杀接口需要依靠令牌才能进入秒杀的令牌由秒杀活动模块负责生成秒杀活动模块对秒杀令牌生成全权处理,逻辑收口秒杀下单前需要先获得秒杀令牌PromoService接口上实现generate原创 2020-09-13 18:55:18 · 294 阅读 · 0 评论 -
5、交易性能优化技术之缓存库存
7.1 交易性能瓶颈交易验证完全依赖数据库库存行锁后置处理逻辑每次做交易,至少有六次的数据库io操作7.2-7.3 交易验证优化用户风控策略优化:策略缓存模型化在开始交易后,针对活动实时信息和用户实时信息的验证,目的是为了风控策略,检查用户账号是否异常,是否异地登陆,策略是:通过异步的方式将用户模型写入缓存,与实时信息做一致性检验,做到风控策略活动校验策略优化:引入活动发布流程,模型缓存化,紧急下线能力实时活动的缓存存在一个问题:如果后台修改活动信息(修改活动结束时间),但redis原创 2020-09-11 01:29:36 · 536 阅读 · 0 评论 -
4、查询性能优化技术之页面静态化
6.1-6.2 静态资源CDN引入用户将静态资源数据请求到ECS服务器,ECS服务器解析到腾讯云的CDN中,CDN可以理解为一个无限大的内容磁盘缓存,本身没有文件存储。当用户访问getItem的一个静态资源文件的时候,会根据路由规则查看本地是否有这样的文件,如果有直接返回,没有就回源到源站,回源到下面的OSS中获取静态资源文件。CDN一边返回对应的文件,一边将文件按照http指示的生命周期缓存起来,以便下次用户访问时,直接返回。CDN有很多的加速节点,当用户请求CDN的时候,CDN会返回一个就近的节点原创 2020-09-09 23:34:03 · 352 阅读 · 0 评论 -
3、查询性能优化技术之多级缓存
5.1本章目标5.2缓存设计原则概览缓存设计原则:用快速存取设备,用内存将缓存推到离用户最近的地方脏缓存清理我们的项目采用多级缓存的架构第一级 Redis缓存Redis缓存有集中管理缓存的特点,是常见NoSql数据库组件第二级 热点缓存本地缓存热点数据存到JVM本地缓存中第三级 nginx proxy cache缓存所有数据最后都会在nginx服务器上做反向代理,nginx服务器也可以开启proxy cache缓存第四级 nginx lua缓存nginx定制lua脚本做nginx原创 2020-09-09 20:25:43 · 798 阅读 · 0 评论 -
解决redis连接错误:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to...
连接redis数据库时突然报错: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled,原创 2020-09-06 20:06:00 · 1074 阅读 · 0 评论