• 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,这样可以给后台需求,做出常用的统计查找功能)

  • 相关阅读:
    CSS(22)CSS的长度单位
    CSS(21)CSS Grid网格布局
    CSS(20)CSS3 弹性盒子(Flex Box)
    CSS(19)CSS3 多列
    CSS(18)CSS3 过渡与动画
    CSS(17)CSS 2D、3D 转换
    CSS(16)CSS3 渐变(Gradients)
    CSS(15)CSS媒体查询Media Queries
    CSS(14)CSS 伪元素
    CSS(13)CSS 伪类(Pseudo-classes)
  • 原文地址:https://www.cnblogs.com/tianyajuanke/p/6641440.html
Copyright © 2020-2023  润新知