数据库与逻辑应用分离的情况下怎么保证信息同步,或者叫安全

我不太明白这个词怎么表达

是这样的,现在有一台服务器运行数据库(server),另外一台运行php程序(client),浏览器(Browser)访问client,然后client逻辑判断后通过http协议对server中的数据库进行CURD操作

有个问题就是,如果Browser的用户操作过快,而serverclient之间http请求太慢的话,就会导致client上获取的数据更新不及时,导致一些错误。。

栗子:一个用户只能买一个商品,用户点击之后,client先读取server的数据,判断是否已经购买,没有购买的话进行写入操作,然后购买完成,但是如果用户连着点击两次购买,两次操作一次进入client,然后由于clientserver之间网速或者其他一些问题,写入操作没有及时完成造成两次购买操作的判断为此用户未购买,于是会有两次写入server数据库的操作,就会造成错误。。

这个问题属于什么?应该怎么解决?

阅读 1.6k
评论
    6 个回答
    • 972

    加并发锁,可以使用redis,memcached等,当一条请求完成后再释放锁

    // 操作的原子性,如该key在有效时间30秒被设置过返回0,一般请求超时为30秒
    $redis->set($lock_key, 1, array("NX", "EX"=>'30'));
      相似问题
      推荐文章