memcache、redis等缓存框架 怎么保证缓存数据的正确性

double9 发布于 2014/07/29 08:45
阅读 3K+
收藏 0

现在一些缓存框架很多,比如java的ehcache、memcche、redis

我几个疑惑的地方:

1. 对缓存数据做put、get操作时,会出现不同步的情况,特别是用的memcache,因为memcache部署在远程机器上,跟webapp不在同一台机器上,数据会不正确。

2. 假如宕机了,缓存数据丢失,这些数据还未同步到数据库中,数据会不正确。

谢谢!

加载中
1
fxhover
fxhover
一般来说数据是先入库再放到缓存中,缓存只是用作快速获取数据,在数据更新完后更新缓存数据。
0
旁边白
旁边白
咋个把缓存数据同步到数据库呢?是持久化的数据缓存到memcached中
0
飞鱼Love
飞鱼Love

memcached本身是一个不严谨的缓存,如果对数据准确性要求高(如商城网店),就放弃吧;

如果 一定要用给你个思路,写入时先把数据放到mamcached中(前提是对数据准确性要求不高),当memcached中的数据量达到一定数量时一次性写入数据库;不过我还是建议你用redis

0
double9
double9

情况是这样的:

每秒并发比较大,用户都有些操作,我们需要把这些操作保存到数据库中,直接保存到数据库肯定不行,不然数据库得挂了,所以就放到cache中的一个队列中,然后有个定时器,循环的从队列中取记录保存到数据库中。

这些数据可能会丢失啊。

如果不用cache缓存框架,那么针对我这样的情况,该怎么保存用户的操作数据呢?

@fxhover    @松下裤腰带    @飞鱼Love


返回顶部
顶部