redis的RDB和AOF两种持久化机制优缺点分析
RDB 默认的保存文件为 dump.rdb,优点是以二进制存储的,因此 占用的空间更小 、数据存储更紧凑,并且与 AOF 相比,RDB 具备 更快的重启恢复能力 。
AOF的优点在于比RDB更安全,一般不会出现数据丢失的现象,就算出现了数量也不会太大,当然了,官方是推荐同时开启AOF和RDB的;而缺点是AOF持久化的速度相比RDB要慢,存储的是一个文本文件,到了后期文件会比较大,传输困难。
RDB机制的优点是持久化的文件相对较小,且恢复数据的速度相对较快。AOF:AOF是一种日志持久化机制,它记录了Redis服务器所执行的所有写操作。
shiro的session信息放redis反序列化异常解决
1、通过上面的配置间接控制SimplePrincipalCollection类中必要字段的序列化,从而解决了问题。 ps :因为使用了注解,一定要去掉objectMapper.configure(MapperFeature.USE_ANNOTATIONS, false),不然配置不生效。
2、解决方案就是升级缓存的版本号(修改原来缓存DTO的Redis的Key值)缓存key升级版本号,在其他未更新的应用中的缓存key已经在跑的jar包里面,他们的key是旧的,比如v1,那么v1对应的DTO就是旧的DTO。
3、建议自己下载源码,让Demo跑起来,然后跑的更快。
4、解决方案是:每次token校验成功后,调用一次getSession(false)方法,重置session的ttl。
redis的序列化后无法删除
如果是担心JSON转对象会消耗资源的情况,这个问题需要考量几个地方,第一点:就是使用的JSON转换lib是否就会存在性能问题。第二点:就是数据的数据量级别,如果是存储百万级的大数据对象,建议采用存储序列化对象方式。
RedisTemplate是使用的JdkSerializationRedisSerializer序列化,序列化后的值包含了对象信息,版本号,类信息等,是一串字符串,所以无法进行数值自增操作。
redis使用了两种文件格式:全量数据和增量请求。
如下:通过上面的配置间接控制SimplePrincipalCollection类中必要字段的序列化,从而解决了问题。 ps :因为使用了注解,一定要去掉objectMapper.configure(MapperFeature.USE_ANNOTATIONS, false),不然配置不生效。
关于redis序列化bug和redistemplateopsforvalue 序列化的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。