redis的一些疑问
spring集成redis
@CacheEvict(value = "commonCache", key = "#uniqueid+'_userInfo'")
什么时候会执行缓存移除呢?如果方法执行异常是否移除?如果缓存不存在还会移除么?
这个移除会在redis的执行历史命令中监控到么?
./redis-cli -a密码 MINITOR 监控redis的实时执行命令,大部分PING是类似心跳?
使用这个实时监控命令,可以 使用grep管道过滤出指定的key来监控redis命令的执行
第一次缓存存在的情况下,执行方法,会有一条del命令;
第二次缓存不存在的情况下,执行方法,也会执行del命令;
所以不管有没有缓存 @CacheEvict 都会执行 redis的 DEL命令
redis 集群同步
由于业务需要2个平台redis做了单向同步 A-->B ,其实具体原理不甚了解,用的阿里云的redis产品,同步也是由运维同学做的,运维的意思是抓取A的redis-server的日志在B集群上执行相同的命令;
但测试发现有些场景并不能同步
但发现A测执行del的命令,B测的key并没有删除为什么? 如果是A生成的key,A删除可以同步删除B,如果B自己生成的key,A测没有这个key,在A测执行 del 是没法同步到B的 (是因为根据del的结果决定是否同步么还是什么原理?)