zoukankan      html  css  js  c++  java
  • note

    redis默认为空,永不落地。 mysql存储数据。

    读取数据时,先从redis里查找,如果没有,则从mysql中查找,查找成功后,起协程将该数据加载到 redis中,并且在redis中为该数据的key设置过期时间。

    如果读取数据从redis中找到数据且修改了该数据,则重置该key的过期时间,并将该key记录到一个地方(或使用redis的key监控事件,这样外部修改redis数据时,也可以同步到DB),然后使用异步线程将该数据落地到mysql.

    这样一来,后台统计类操作,可以直接操作MYSQL,数据是最新的。修改类操作,使用接口操作REDIS,也可以操作DB后删除REDIS中相应key(这种方法可以少写些接口)

    这样redis就是当成内存数据库使用,且实现了冷热数据的调度,然后兼顾后台人员统计的方便性。 

    游戏服务器需要封装数据操作接口:

    取数据——从REDIS——从MYSQL——异步写回REDIS并设置过期时间

    写数据——写REDIS并更新过期时间——键通知事件触发——写入MYSQL

    日志类数据,直接异步写入MYSQL的日志库。

    协议类数据,可以异步写入MYSQL或mongdb (可以直接写MYSQL,这样可以给后台需求,做出常用的统计查找功能)

  • 相关阅读:
    小程序使用字体图标-阿里版
    vue项目安装vux
    JS日期相减得到天数
    vue的Vuex
    ES6的Promise
    根据坐标拖动(简单)
    JSP 第三周作业
    JSP第二次作业(2)
    第二次JSP作业
    JSP 第一次作业
  • 原文地址:https://www.cnblogs.com/tianyajuanke/p/6641440.html
Copyright © 2011-2022 走看看