一、Redis简介
- Redis是一个开源的内存数据库,提供了一个高性能的键值(key-value)存储系统,常应用于缓存、消息队列、会话存储等应用场景。
- 特点一:性能极高,每秒10万次的读写能力,适用于高并发的请求场景,例如:缓存、会话、排行榜等。
- 特点二:丰富的类型,不仅支持基本的键值存储,还提供了丰富的数据类型,包括字符串、列表、集合、哈希表、有序集合等。
- 特点三:持久化,可以将内存的数据保存到磁盘中,以便在系统重启后恢复数据,确保了数据安全性,确保数据不会因为系统故障而丢失。
- 特点四:支持发布/订阅模式,这样就可以实现消息传递通信,也可以作为消息队列和实时数据传输平台。
- 特点五:支持主从复制。
- 特点六:单线程模型,但它通过事件驱动模型来处理并发请求,确保高性能和低延迟。
- 特点七:跨平台兼容性,支持Linux,macOS,windows。
二、若依自定义了Redis的管理组件类
@SuppressWarnings(value = { "unchecked", "rawtypes" })
@Component
public class RedisCache
主要包装了对以下数据类型的操作方法:
3.常用数据类型
1.String
1.1 存入数据到缓存 Integer、String、实体类等
1.2 缓存基本的对象并设置过期时间,Integer、String、实体类等
1.3 获取缓存基本对象
1.4 删除缓存中单个对象
1.5 获得缓存的基本对象列表
2.List
2.1 缓存List数据
2.2 获得缓存的list对象
2.3 删除集合对象
3.Set
3.1 缓存Set数据
3.2 获得缓存的set
4.Map
5.1 缓存Map
5.2 获得缓存的Map
5.3 删除Hash中的数据
5.4 获取多个Hash中的数据
5.常用方法
5.1 设置有效时间
三、若依如何让Redis设置数据的,主要通过@PostConstruct这个注解
@PostConstruct
public void init()
{
loadingConfigCache();
}
四、若依在哪些地方用到了Redis
(1)参数设置
前端引用:
例如取得初始密码:
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg;
});
后端设置:
@Service
public class SysConfigServiceImpl implements ISysConfigService
(2)字典设置
前端引用:
例如1:
import { getDicts } from "@/api/system/dict/data";
例如2:
name: "ProjAccept",
dicts: ['person_id_type','zjm_proj_source', 'zjm_common_yes_no', 'zjm_project_status','dic_area_type'],
后端设置:
(1)SysDictDataServiceImpl它的新增与更新,删除中对Redis操作(通过自定义
DictUtils来操作Redis.
@Service
public class SysDictDataServiceImpl implements ISysDictDataService
(2)SysDictTypeServiceImpl
@Service
public class SysDictTypeServiceImpl implements ISysDictTypeService
(3)DictUtils工具类,包装了对把数据字典放到redis的操作。
(3)登录验证码
@RestController
public class CaptchaController
(4)在线用户
@RestController
@RequestMapping("/monitor/online")
public class SysUserOnlineController extends BaseController
(5) token的管理
@Component
public class TokenService