缓存键的设计应该足够简单,以便可以快速精确地检索。 可以使用一个固定的前缀,后接用户ID或其他有意义的标识符。 键的命名应避免包含空格、换行符、制表符等特殊字符,以防止产生任何乱码问题。
对于大量key的缓存查询和获取指定key值的缓存,下面将详细介绍相关的重要信息,并使用小标题和单元表格进行结构化展示:
1、缓存键值生成策略
键值设计原则:缓存键的设计应足够简单,以便可以快速精确地检索,键的命名应避免包含空格、换行符、制表符等特殊字符,以防止产生任何乱码问题。
动态生成键值:在@Cacheable注解中,key属性用于指定缓存的key值,此属性的值可以是一个SpEL表达式,用于动态生成缓存的key。
2、缓存注解的使用
启用缓存:@Cacheable注解表示启用缓存,并指定value参数为book,表示缓存Key; key参数为#isbn,则表示缓存的键名为isbn变量的值。
激活缓存:在使用@Cacheable注解前,我们还需要增加@EnableCaching注解激活缓存。
3、缓存键值查询
获取所有KEY:在与 Spring Cache 配合使用的 Caffeine 缓存中,我们可以通过某种方式来获取到底层的实现类,并使用其特殊的方法来获取所有可用KEY的集合。
精确找到缓存Key:接口公开了几个常用的方法,根据缓存键值来清理缓存用的比较频繁,前提是要精确找到曾经使用的Key名称或者集合。
4、缓存键值清理
根据特征批量移除:业务上有时候我们希望能根据一些特征,批量把一批Key来移除掉,这个时候就找不到枚举缓存Key集合的方法。
5、缓存键值问题排查
节点错误:在使用redisTemplate.keys查找keys时,发现明明相应的key是存在的,模糊查询就是查找不出来;你key值有可能是乱码了就是遇到xcaxed加上你key之类的乱码。
应当正确设计和管理缓存键值,同时合理使用缓存注解,以及有效利用缓存键值查询和清理的方法,以优化缓存的使用效果,也需要注意缓存键值问题排查,以避免因键值问题导致缓存查询失败。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/793893.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复