博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
note
阅读量:7036 次
发布时间:2019-06-28

本文共 531 字,大约阅读时间需要 1 分钟。

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

 

转载地址:http://wynal.baihongyu.com/

你可能感兴趣的文章
Ubuntu安装虚拟机
查看>>
gitlab的搭建及问题的解决
查看>>
Cocos2d-x3.0模版容器详解之二:cocos2d::Map<K,V>
查看>>
免费获取WP之类的开发者权限或免费使用Azure 2015-10-19
查看>>
JAVA学习(九):JAVA多线程编程
查看>>
基于Solr DIH实现MySQL表数据全量索引和增量索引
查看>>
Struts2--Helloworld
查看>>
【Java】基础语法
查看>>
AutoMySQLBackup 3.0 Bug:"du: WARNING: use --si, not -H"
查看>>
使用js Math.random()函数生成n到m间的随机数字
查看>>
[翻译] IDMPhotoBrowser
查看>>
wordpress 插件推荐
查看>>
IOS开发UI篇—导航控制器属性和基本使用
查看>>
android smartbar适配
查看>>
postgresql 分区与优化
查看>>
数码相框项目之LCD模块
查看>>
Android通讯录添加号码
查看>>
Codeoforces 558 B. Duff in Love 【 Codeforces Round #326 (Div. 2)】
查看>>
建设优质手机网站必读
查看>>
搭建 nuget 私服及注意事项
查看>>