应用场景
注意:高频访问数跟热点数据
热点数据:关键在点:数量少,访问频次高
___________________
注意keys * 不要在生产环境下使用
Redis不是万金油
用Redis去保存用户的基本信息,虽然它能够支持持久化,但是它的持久化方案并不能保证数据绝对的落地,并且还可能带来Redis性能下降,因为持久化太过频繁会增大Redis服务的压力
概述
Redis诞生于2009年,全称是Remote Dictionarty Server(远程词典服务器)
只支持单线程(核心部分单线程, redis6.0中网络请求部分支持多线程)
结构化、sql查询 磁盘
非关联:主要指的是表中没有主外键等概念
Redis是一款内存数据库,主要存储键值对类型的数据
基本用法
注意:该操作是在cli中进行的
键名可以是两个
首次启动加载方法
注意:必须开启两个doc命令窗口
不同客户端实现方式区别
Redis为什么快
1.基于内存操作
2.多路复用IO模型
3.单线程(部分多线程)
————————————————————————————
结构化:JSON
非结构化:键值对
——————————————————————————————————————
key的层级结构
_____________________________________________________________________________
常见问题解决方案
缓存更新策略
缓存穿透
补充:增加id复杂度,避免被猜测id规律
缓存击穿
也被称为热点key问题
缓存击穿互斥锁关键点:
1.如何重试:递归的调用查询方法
2.何时加锁:缓存未命中时,尝试加锁。
3.锁的过期时间如何确定:业务执行时间的10 - 20倍
4.如何确定锁释放: 将释放锁的操作放在finally(注意:System.gc会打断该操作的执行)
逻辑删除关键点:
过期时间是如何判断的
定义一个实体类用来保存数据和过期时间