前网易架构师-高司机
曾在IBM的Platform Computing,淘米网,网易搬砖。资深游戏服务器架构师,合作+v(gao_ke104)可付费咨询服务器架构设计,网络问题,深度学习和训练数据集等问题,提供商业化的视觉人工智能检测和预警系统(煤矿,工厂,制造业,消防等领域的工业化产品),合作开发商业性游戏。
展开
-
如何使用redis来实现常见的游戏排行榜
前言前面几篇文章给大家聊了下目前的常用的排行榜做法。关于游戏排行榜设计开发的一些总结游戏排行榜-跳表实现原理分析那么这篇文章将给大家带来如何使用redis来实现常见的游戏排行榜功能。为什么...原创 2021-08-20 09:07:04 · 471 阅读 · 0 评论 -
C++库封装mongodb(跨平台开发)
我的初衷是在Linux平台下只提供动态库和头文件,windows平台下提供静态库和头文件给开发者,这个库mongo-proxy对外提供了一些对mongodb的连接,增删改查,创建索引,聚合等操作的封装,开发者只需要关心接口如何调用,而不需要关心接口是如何实现的,也不需要关心mongo-c-driver的相关依赖,这里我抽象出mongo_proxy类,原创 2023-08-28 18:12:15 · 18597 阅读 · 2 评论 -
MongoDB数据库查询性能提高40倍
MongoDB数据库查询性能提高40倍的经历分享转载更新时间:2017年02月13日 14:41:14 作者:mydeman 我要评论大家在使用 MongoDB 的时候有没有碰到过性能问题呢?下面这篇文章主要给大家分享了MongoDB数据库查询性能提高40倍的经历,需要的朋友可以参考借鉴,下面来一起看看吧。前言数据库性能对软件整体性能有着至关重要的影响,本文给大家分享...原创 2018-07-30 14:47:41 · 8350 阅读 · 2 评论 -
mysql的cpu高定位
导致数据库CPU很高的原因有很多种,一般和慢SQL也有关(因为每条SQL要么占CPU高,要么占IO高,大体是这样)。(1)、如果服务器有多个mysql实例,需要通过top命令看看是哪个my...原创 2021-05-13 18:30:00 · 335 阅读 · 0 评论 -
MYSQL增量备份和全量备份脚本分享
mysql的全量备份与增量备份全量备份:可以使用mysqldump直接备份整个库或者是备份其中某一个库或者一个库中的某个表。增量备份:增量备份是针对于数据库的bin-log日志进行备份的...原创 2020-11-24 11:50:00 · 515 阅读 · 0 评论 -
Linux下MySQL忘记root密码及解决办法
第一步修改MySQL的配置文件(默认为/etc/my.cnf),在配置文件的[mysqld]标签下加入一行“skip-grant-tables”,并保存文件sudo vim /etc...原创 2020-12-15 07:26:59 · 167 阅读 · 0 评论 -
Redis :01---Redis简介和安装
一、Redis简介·Redis官网:https://redis.io/·Redis是一种基于键值对(key-value)的NoSQL数据库·与很多键值对数据库不同的是,Redis中...原创 2020-11-27 07:35:00 · 304 阅读 · 0 评论 -
Redis:02---安装Redis(Linux+Windows+Docker)
Linux安装:一、安装方式1(下载源码编译安装)第一步:从下面的网址中下载Redis最新稳定版本的源代码sudo wget http://download.redis.io/redis...原创 2020-11-26 08:00:00 · 165 阅读 · 0 评论 -
Redis:03---Redis的启动与配置参数大全
一、Redis的可执行文件当我们安装完Redis之后,src和/usr/local/bin目录下提供了下面这些可执行程序,我们称之为Redis Shell:redis-serverRed...原创 2020-11-28 07:30:00 · 1286 阅读 · 0 评论 -
Redis:04---键的基本命令(上)
一、KEYS:全量遍历键KEYS pattern功能:用来获取此数据库中所有的键名注意事项:KEYS命令需要遍历Redis中的所有键,当键的数量较多时会影响性能,不建议在生产环境下使用支...原创 2020-11-29 08:57:26 · 102 阅读 · 0 评论 -
Redis:05---键的基本命令(下) 生存周期
一、设置键生存/过期时间生存时间(Time To Live,TTL):在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键过期时间(expire time):是一个UNIX...原创 2020-11-29 08:57:26 · 164 阅读 · 0 评论 -
Redis:06---数据库管理
一、服务器中的数据库Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redisDb结构,每个...原创 2020-12-01 08:00:00 · 90 阅读 · 0 评论 -
Redis:07---Redis数据结构
一、五大数据结构Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为:STRING:字符串LIST:列表SET:集合HASH:散列ZSET:有序集合TYPE命令...原创 2020-12-01 08:00:00 · 200 阅读 · 0 评论 -
Redis:08---字符串对象
一、字符串对象概述字符串类型是Redis最基础的数据结构。首先键都是字符串类型,而且其他几种数据结构都是在字符串类型基础上构建的,所以字符串类型能为其他四种数据结构的学习奠定基础字符串就...原创 2020-12-02 08:00:00 · 104 阅读 · 0 评论 -
Redis:09---Hash对象
一、哈希对象简介几乎所有的编程语言都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组哈希又称散列在Redis中,哈希类型是指键值本身又是一个键值对结构,形如value={...原创 2020-12-03 08:00:00 · 363 阅读 · 0 评论 -
Redis:10---List对象
一、列表对象概述 列表类型是用来存储多个有序的字符串,一个列表最多可以存储多个元素。列表是一种比较灵活的数据结构,它可以充当栈和队列的角色,在实际开发上有很多应用场景特点:一个...原创 2020-12-03 08:00:00 · 240 阅读 · 0 评论 -
Redis:11---Set对象
集合类型 (Set) 是一个无序并唯一的键值集合。它的存储顺序不会按照插入的先后顺序进行存储。集合类型和列表类型的区别如下:列表可以存储重复元素,集合只能存储非重复元素;列表是按照元素的...原创 2020-12-24 06:17:12 · 667 阅读 · 1 评论 -
Redis:12---有序集合对象
一、有序集合对象概述它保留了集合不能有重复成员的特性, 但不同的是,有序集合中的元素可以排序。但是它和列表使用索引下标作为排序依据不同的是,它给每个元素设置一个分数(score)作为排序...原创 2020-12-24 06:17:12 · 256 阅读 · 0 评论 -
Redis:13--常用功能之redis-cli redis-server等命令
Redis提供了redis-cli、redis-server、redis-benchmark等Shell工具。它们 虽然比较简单,但是麻雀虽小五脏俱全,有时可以很巧妙地解决一些问题一、r...原创 2020-12-24 06:17:12 · 1541 阅读 · 0 评论 -
Redis:14---常用功能之(Pipeline)
一、Pipeline概述Redis客户端执行一条命令分为如下四个过程:1.发送命令2.命令排队3.命令执行4.返回结果其中1+4称为Round Trip Time(RTT,往返时间)Pi...原创 2020-12-24 06:17:12 · 443 阅读 · 1 评论 -
Redis:15---键迁移(move、dump、restore、migrate)
键迁移概述:键迁移就是把数据由一个Redis迁移到另一个Redis(例如从生产环境迁移到测试环境),或者在数据库之间进行迁移键迁移有三种方式:move、dump+restore、migr...原创 2020-12-24 06:17:12 · 1060 阅读 · 0 评论 -
Redis:16---常用功能之(慢查询日志)
一、慢查询日志介绍许多存储系统(例如MySQL)提供慢查询日志帮助开发和运维人员定位系统存在的慢操作。所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条...原创 2020-12-24 06:17:12 · 139 阅读 · 1 评论 -
Redis:17---常用功能之(事务)
为了保证多条命令组合的原子性,Redis提供了简单的事务功能以及集成Lua脚本来解决这个问题,本文介绍Redis事务,Lua在下一篇文章介绍一、事务概述简单地说,事务表示一组动作,要么全...原创 2020-12-24 06:17:12 · 186 阅读 · 0 评论 -
Redis:18---常用功能之(Lua脚本)
为了保证多条命令组合的原子性,Redis提供了简单的事务功能以及集成Lua脚本来解决这个问题,本文介绍Lua,事务已经在前一篇文章介绍过了一、Lua概述Lua语言是在1993年由巴西一个...原创 2020-12-24 06:17:12 · 206 阅读 · 0 评论 -
Redis:19---常用功能之(HyperLogLog)
一、HyperLogLog概述HyperLogLog并不是一种新的数据结构(实际类型为字符串类型),而是一种基数算法,通过HyperLogLog可以利用极小的内存空间完成独立总数的统计,...原创 2020-12-25 09:23:15 · 224 阅读 · 0 评论 -
Redis:20---常用功能之(发布与订阅)
一、发布与订阅概述Redis提供了基于“发布/订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道(channel)发布消息,订阅该频道的每个客户...原创 2020-12-25 09:23:15 · 197 阅读 · 0 评论 -
Redis:21---客户端相关配置篇
一、客户端相关配置①客户端的限制maxclientsRedis提供了maxclients参数来限制最大客户端连接数,一旦连接数超过 maxclients,新的连接将被拒绝maxclien...原创 2020-12-25 09:23:15 · 585 阅读 · 0 评论 -
Redis:22---客户端API:client、monitor)
一、client listclient list命令能列出与Redis服务端相连的所有客户端连接信息。例如下面代码是在一个Redis实例上执行client list的结果,其中每一行代...原创 2020-12-25 09:23:15 · 407 阅读 · 0 评论 -
Redis:23---info命令总结
info命令的格式有3种:info:部分Redis系统状态统计信息info all:全部Redis系统状态统计信息,一次性打印下面所有p的内容info p:某一块的系统状态统计信息。i...原创 2020-12-25 09:23:15 · 737 阅读 · 0 评论 -
服务器面试必备-redis面试题总结
Redis 本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。原创 2024-03-07 00:30:00 · 56815 阅读 · 2 评论 -
Redis线上救命丸:01---误操作AOF、RDB恢复数据
Redis的flushall/flushdb命令可以做数据清除,对于Redis的开发和运维人员有一定帮助,然而一旦误操作,它的破坏性也是很明显的。怎么才能快速恢复数据,让损失达到最小呢?...原创 2020-12-07 11:09:14 · 298 阅读 · 0 评论 -
Redis 消息队列:构建消息代理的 4 个简单步骤
Redis 消息队列包括流行的解决方案和客户端,例如 Ruby、Python、PHP、Java、Objective-C、Node.js、Clojure、C++、C# 等。与其他技术相比,我们需要更少的集成线来存储、访问和使用我们的应用程序中的数据。Redis消息队列Pub/Sub系统中的订阅者可以订阅任意数量的通道,Redis消息队列的发布者可以将消息发布到任意通道。Redis 的高性能使其成为最受欢迎的数据存储、缓存,甚至通过使用 Redis 消息队列等工具成为轻量级消息代理。队列提供细粒度的可扩展性。原创 2024-02-28 11:18:18 · 375 阅读 · 0 评论 -
如何将阿里云WiredTiger引擎的MongoDB物理备份文件恢复至自建数据库
数据库操作一直是一个比较敏感的话题,动不动“删库跑路”,可见数据库操作对于一个项目而言是非常重要的,我们有时候会因为一个游戏的严重bug或者运营故障要回档数据库,而你们刚好使用的是阿里云的Mongodb,那么这篇文章将给你提供一个思路(或许你按照阿里云官网的文档一顿操作下来,并不是那么顺利,有一些报错,无法登录...)原创 2023-08-14 10:27:06 · 835 阅读 · 0 评论 -
Redis快速恢复数据
Redis的flushall/flushdb命令可以做数据清除,对于Redis的开发和运维人员有一定帮助,然而一旦误操作,它的破坏性也是很明显的。怎么才能快速恢复数据,让损失达到最小呢? 注意:为了方便说明,下文中除了AOF文件中的flushall/flushdb以外,其他所有的flushall/flushdb都用flush代替 本文假设进行flush操作的Redis是一对主从结构的主节点,其中键值对的个数是100万,每秒写入量是1000一、缓存与存储被误操作flush后,根据当前Redis是缓.原创 2023-03-20 17:22:47 · 679 阅读 · 0 评论 -
redis排行榜之日排行周排行设计
排行榜功能是一个很普遍的需求。使用 Redis 中有序集合的特性来实现排行榜是又好又快的选择。一般排行榜都是有实效性的,比如“用户积分榜”。如果没有实效性一直按照总榜来排,可能榜首总是几个老用户,对于新用户来说,那真是太令人沮丧了。首先,来个“今日积分榜”吧,排序规则是今日用户新增积分从多到少。那么用户增加积分时,都操作一下记录当天积分增加的有序集合。 假设今天是 2015 年 04 ...原创 2018-07-20 13:34:33 · 3875 阅读 · 0 评论 -
关于mysql的cpu占用高的问题
现在游戏开了泰服 ,发现泰服的cpu占用率总是比繁体或者大陆的高很多,每次都是占用了300%多top - 15:34:06 up 222 days, 2:51, 2 users, load average: 0.75, 0.73, 0.66Tasks: 215 total, 1 running, 214 sleeping, 0 stopped, 0 zombieCpu原创 2015-01-12 17:06:35 · 7678 阅读 · 0 评论 -
mysql导入source数据库sql的C++实现和封装
不需要mysql客户端,在代码里实现source功能的C++实现和封装原创 2015-02-05 08:48:55 · 2067 阅读 · 0 评论 -
关于mysql的change和modify
前端时间要写个游戏里的邮件系统,定义了一个如下的表结构:CREATE TABLE `sysmail` ( `mailid` int(20) NOT NULL AUTO_INCREMENT, `sendtime` int(11) NOT NULL DEFAULT '0', `mailtitle` varchar(512) COLLATE utf8_bin NOT NULL DEFAU原创 2015-01-04 20:55:34 · 12672 阅读 · 0 评论 -
最近准备学习下mongodb(一 Windows安装篇)
1 先安装mongodb 的windows版本,Linux的我后期会加上的。https://www.mongodb.com/dr/fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.0.0-signed.msi/download2.安装php扩展插件:https://pecl.php.net/package/mong...原创 2018-07-24 15:10:28 · 236 阅读 · 0 评论 -
MySQL -通过调整索引提升查询效率
我们遇到的最容易引起困惑的问题就是索引列的顺序。正确的顺序依赖于使用该索引的查询,并且同时需要考虑如何更好地满足排序和分组的需要(顺便说明,本节内容适用于B-Tree索引;哈希或者其他...原创 2020-12-15 07:26:59 · 159 阅读 · 0 评论