stinge 2010-11-30 10:15
浏览 1758
已采纳

两个不同的网站能不能共用一个数据库?

我用rails做了一个网站,现在想用php再做一个不同的系统,将它们集成起来,用的数据是同一个mysql数据库的,请问数据访问会不会冲突?

  • 写回答

22条回答 默认 最新

  • zzy9zzy 2010-12-03 11:32
    关注

    其实“抛出异常的爱”已经把缓存的问题说清楚了,并不难理解。我另外举个我常用的例子:

    假设A和B系统用的都是本机的缓存,互相之间没有同步机制。这时数据库里面有银行账号,账号里面的余额可以被A和B两个系统同时访问。A系统读取到余额是100元,放到了A系统的缓存里面给需要的请求用;B系统同时也读取了余额100元放到B系统的缓存里面给需要的请求用。这时A系统的用户消费了100元,A系统将数据库里面的余额扣减为0元,A系统缓存也改为0元(没有通知B系统),这时用户同时向B系统提交了100元的消费请求,B系统从缓存中看到余额是100元,就正常扣减进行消费,但实际上这个用户只有100元,因为缓存没有和A系统同步,所以造成了错账——这对涉及到钱的系统是致命的。

    为了解决这种问题,我们就要设计缓存的同步机制,让某一个系统改变了数据后要通知共用数据库的其他系统,这个机制是比较麻烦的,而且比较耗费系统资源,所以我们就考虑让所有系统使用同一个缓存,避免互相之间的同步开销,这种集中式缓存的典型代表就是——Memcache

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(21条)

报告相同问题?

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误