SafeCampus.Cache Redis常量 Redis Key前缀(可删除) Redis Key前缀(需要持久化,不随系统重启删除) Redis Hash类型 用户Token缓存Key 缓存服务 缓存服务 添加一条数据到HashMap hash列表里的Key 添加多条数据到HashMap 键值对字典 从HashMap中删除数据 hash键列表 执行结果 根据键获取hash列表中的值 hash键列表 数据列表 根据键获取hash列表中的值 hash键 获取所有键值对 数据字典 是否包含缓存项 设置缓存项 过期时间,秒。小于0时采用默认缓存时间 设置缓存项 过期时间 获取缓存项 批量移除缓存项 键集合 清空所有缓存项 设置缓存项有效期 过期时间 获取缓存项有效期 模糊删除 匹配关键字 批量获取缓存项 批量设置缓存项 过期时间,秒。小于0时采用默认缓存时间 获取列表 元素类型 获取哈希 元素类型 获取队列 元素类型 获取栈 元素类型 获取Set 添加,已存在时不更新 值类型 过期时间,秒。小于0时采用默认缓存时间 设置新值并获取旧值,原子操作 常常配合Increment使用,用于累加到一定数后重置归零,又避免多线程冲突。 值类型 尝试获取指定键,返回是否包含值。有可能缓存项刚好是默认值,或者只是反序列化失败,解决缓存穿透问题 值类型 值。即使有值也不一定能够返回,可能缓存项刚好是默认值,或者只是反序列化失败 返回是否包含值,即使反序列化失败 累加,原子操作 变化量 累加,原子操作 变化量 递减,原子操作 变化量 递减,原子操作 变化量 提交变更。部分提供者需要刷盘 申请分布式锁 要锁定的key 锁等待时间,单位毫秒 申请分布式锁 要锁定的key 锁等待时间,申请加锁时如果遇到冲突则等待的最大时间,单位毫秒 锁过期时间,超过该时间如果没有主动释放则自动释放锁,必须整数秒,单位毫秒 失败时是否抛出异常,如果不抛出异常,可通过返回null得知申请锁失败 缓存设置 使用Redis Redis设置 Redis设置 连接地址 密码 数据库 是否每次启动都清空 内存缓存 内存缓存 Redis缓存 Redis缓存 AppStartup启动类 ConfigureServices中不能解析服务,比如App.GetService(),尤其是不能在ConfigureServices中获取诸如缓存等数据进行初始化,应该在Configure中进行 服务都还没初始化完成,会导致内存中存在多份 IOC 容器!! 正确应该在 Configure 中,这个时候服务(IServiceCollection 已经完成 BuildServiceProvider() 操作了