84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
redis是基于内存的,所以存在当程序挂掉数据丢失的可能。我目前想到的备份方案是,做一个主从,从库做定时dump。
但是dump是不是实时的,而是隔一段时间做一次,所以这期间还是有丢失数据的可能。是否有方案能实时备份redis的数据,让redis出了问题以后快速恢复。
小伙看你根骨奇佳,潜力无限,来学PHP伐。
启用 AOF (append-only file)。
AOF
丢数据的问题,可以通过redis的主从复制解决问题。但是,我觉得可以想办法降低数据丢失的风险程度和波及范围。抢票属于典型的高并发场景,可以考虑只把车票的库存信息放在内存中,其他的信息通过更为可靠的数据库来保存。
具体的解决方案: 1、redis启用主从复制,对外提读供服务可以用两台以上的从解决单点问题和负载均衡; 2、至于挂掉的数据恢复方案,可以出队操作记录日志,服务挂掉的话,重启之后通过日志快速恢复库存; 3、降低数据丢失风险的方案。比如使用redis的queue数据结构,来保存车票库存,出队成功就算抢到票,然后保存抢票关系到数据库,然后下单&付款; 4、实际使用经验redis挂掉的概率不大,不过挂掉恢复数据确实麻烦。所以最好看使用场景吧,如果非常重要的数据,建议尽量避免放在内存数据库,最好还是数据落地为好。
启用
AOF
(append-only file)。丢数据的问题,可以通过redis的主从复制解决问题。但是,我觉得可以想办法降低数据丢失的风险程度和波及范围。抢票属于典型的高并发场景,可以考虑只把车票的库存信息放在内存中,其他的信息通过更为可靠的数据库来保存。
具体的解决方案:
1、redis启用主从复制,对外提读供服务可以用两台以上的从解决单点问题和负载均衡;
2、至于挂掉的数据恢复方案,可以出队操作记录日志,服务挂掉的话,重启之后通过日志快速恢复库存;
3、降低数据丢失风险的方案。比如使用redis的queue数据结构,来保存车票库存,出队成功就算抢到票,然后保存抢票关系到数据库,然后下单&付款;
4、实际使用经验redis挂掉的概率不大,不过挂掉恢复数据确实麻烦。所以最好看使用场景吧,如果非常重要的数据,建议尽量避免放在内存数据库,最好还是数据落地为好。