现在的实现是,一个非静态对象可能会频繁修改,还要保持和缓存的一致,所以每次修改了对象之后就往缓存里更新一遍。如果可以监听对象销毁的话,可以在销毁前写一遍就好了
我现在覆写了Object类里的finialize方法,来将对象写入缓存中,考虑到这样的话,如果服务器挂了,更新后的数据就没了。有没有更好的方法?
没有更好的方法,服务器随时会挂,放在内存中的数据随时都可能丢失,只能每次对象修改后进行持久化。
好吧 即使是每次修改后持久化 服务器重启也会丢失数据吧 丢失的少一点?
如果可以监听对象销毁的话,可以在销毁前写一遍就好了——那你改变怎么办?!
参考redis做一个实现,你这就是redis干的一部分活。你如果要同一个进程,可以用现成的cache加一个持久化策略就能实现。
改变的话 我想直接改变对象的属性 运行时直接从属性里读 然后销毁的时候写到数据库里/缓存库里。