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