题目可能描述不清晰,也不是需求驱动,全是我自己yy的,一些名字也是我臆想的,见谅
我的想法是mysql读操作就是正常的缓存逻辑,而mysql的写操作也写到redis,在空闲的时候再同步到mysql,这样web服务的数据操作全部打到redis上,应该可以扛住更大流量
对mysql可以读写分离,redis做读缓存,然后写操作通过消息队列减轻写操作的压力。这种方法可能有实时问题,不知对不对。
以上只是开脑洞,还望大神能指教可行性和实现是否有意义
我在我的项目中用到counter updater
一个用计数,一个就是常规的update
redis中使用hash类型存储数据。
举例来说
mysql中有用户表user,用户资料表user_profile
redis中user使用hash类型,合并需要到的user user_profile字段,合并哪些字段需要根据自己的项目需求。
用到redis就要考虑缓存的维护。
我举个例子:更新用户最后登录时间
updater中有个方法更新redis中user中的last_login成员数据,同时插入updater的队列。
这样,redis缓存维护了,然后定时消费updater队列来更新mysql。
思路就是这样。
数据不变就可简单的代理,如果数据还要修改,删除呢 比如发个帖发完了觉得不对,要修改,或者要删除, 你在修改/删除的时候是修改redis还是修改mysql呢 这时候个要判断你的数据是已经同步到mysql还是没同步在redis,增加了额外的复杂性