总结
文章平均质量分 76
勇-子
这个作者很懒,什么都没留下…
展开
-
MySQL 优化查询
1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。如:select id from t where num is ...原创 2018-08-01 14:22:18 · 335 阅读 · 0 评论 -
redis简单应用
redis简单应用启动和结束--启动redis服务E:\redis>redis-server.exe redis.windows.conf--结束redis服务127.0.0.1:6379> shutdownnot connected>3、修改配置文件的两种方式3.1、运行中使用config set命令修改--连接redis,-h ip> -a pwd>转载 2016-08-10 09:35:40 · 3575 阅读 · 0 评论 -
mongoVUE的增删改查操作使用说明
1、 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{"sendId":"000101"}表示查询sendId=000101的记录,(注:mongodb区分大小写,写成{"sendid":"000101"}会查询不到)查询条件包含and时,格式为:{"sendId":原创 2016-05-13 16:34:15 · 13941 阅读 · 4 评论 -
Redis 主从复制
一、Redis的Replication: 这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了。相信在阅读完这篇Blog之后你也可以轻松做到。这里我们还是先列出一些理论性的知识,后面给出实际操作的案例。 下面的列表清楚的解释了Redis Replication的特点和优势。 1). 同一个Master可以同步多个Slaves。原创 2016-03-01 17:27:00 · 353 阅读 · 0 评论 -
Redis : ServiceStack.Redis之IRedisClient
事实上,IRedisClient里面的很多方法,其实就是Redis的命令名。只要对Redis的命令熟悉一点就能够非常快速地理解和掌握这些方法,趁着现在对Redis不是特别了解,我也对着命令来了解一下这些方法。一、属性 IRedisClient的属性如下:属性说明ConnectTimeout 连接超时Db当前数据库的ID或下标原创 2016-03-01 17:06:08 · 1038 阅读 · 0 评论 -
redis 五种数据类型的使用场景
1.String常用命令:除了get、set、incr、decr mget等操作外,Redis还提供了下面一些操作:获取字符串长度往字符串append内容设置和获取字符串的某一段内容设置及获取字符串的某一位(bit)批量设置一系列字符串的内容应用场景:String是最常用的一种数据类型,普通的key/value存储都可以归为此类,value其实不仅是Stri原创 2016-03-01 14:05:21 · 517 阅读 · 0 评论 -
window 守护进程
这个脚本提供两种方式守护,一种是通过进程名,但对于进程名都是java.exe的java程序不适用,另一种是通过netstat查找应用程序所监听的端口是否正在被监听。这两种方式可以在脚本中通过两个冒号注释来选择切换。下面是设置成通过端口来守护的,当端口没被监听则打开一个zip文件,所以运行后会发现没过5秒会重复打开这个zip文件,除非这个zip文件打开后会自动监听8080端口,那当然是不可能的!脚本原创 2016-01-09 11:01:22 · 1839 阅读 · 0 评论 -
NetMQ 测试用例
近期研究了一下NetMQ,设想把他用在分布式爬虫上面,NetMQ是一个封装了Socket队列的开源库,他是ZeroMQ的.net移植版,而ZeroMQ是用C写成的,有人测试过他的性能,几乎可以秒杀其他所有的MQ(MSMQ,RabitMQ等等,都不是他的对手),不过他也有一个弱点,消息不支持持久化!当然,这个功能可以自己实现,我这里只讲性能,不需要持久化下面的例子是我基于NetMQ官网的例子原创 2016-01-22 20:51:25 · 2779 阅读 · 0 评论 -
服务器 开发技术详解
版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46716073从事游戏服务器开发差不多两年时间,两年间参与了不少项目,学到了很多游戏服务器开发技术,参与过几个不同架构的服务器开发,就随便聊聊游戏服务器开发需要的技术。(以下所指游戏转载 2016-01-22 11:56:38 · 1618 阅读 · 0 评论 -
全球同服 游戏服务器架构设计
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:马剑飞链接:https://www.zhihu.com/question/31103751/answer/64631116来源:知乎首先,游戏服务器是IO密集型服务器,它的主要瓶颈在网络IO,而不是CPU,这点要记住了。所以经常服务器问题都会出现在网络IO,带宽,数据库磁盘读写上面,而非CPU上面。转载 2016-01-22 11:46:58 · 13266 阅读 · 1 评论 -
游戏服务器 数据同步方案
游戏数据同步方案 首先我们介绍实时对战手游中最难解决的技术问题——弱网络下的数据同步问题。 通过对玩家的游戏数据进行观察,发现玩家的游戏环境存在很大差异,不同玩家会使用不同的2G/3G/4G/Wifi网络,不同网络之间的延迟相差很大。另外移动网络质量不稳定,且都是按流量收费,这些都是需要考虑的问题。手机在网络间的切换,又会造成底层网络断线、地址变化等问题,都是常见转载 2016-12-26 15:26:59 · 10896 阅读 · 0 评论 -
游戏服务器优化
网络游戏服务器注意事项,优化措施1:IO操作是最大的性能消耗点,注意优化余地很大。2:算法数据结构。排序寻路算法的优化。list,vector,hashmap的选择。大数据寻址,不要考虑遍历,注意考虑hash.3:内存管理。重载new/delete,内存池,对象池的处理。4:数据的提前准备和即时计算。5:CPU方面的统计监视。逻辑帧计数(应当50ms以内)。6:预分配池减少转载 2016-12-27 11:29:29 · 1988 阅读 · 0 评论 -
负载均衡
什么是负载均衡负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。常见的负载均衡方案常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游都均匀访问每一个下游,就能实转载 2017-10-12 10:46:29 · 400 阅读 · 0 评论 -
单点系统架构的优化
一、需求缘起明明架构要求高可用,为何系统中还会存在单点?回答:单点master的设计,会大大简化系统设计,何况有时候避免不了单点在哪些场景中会存在单点?先来看一下一个典型互联网高可用架构。典型互联网高可用架构:(1)客户端层,这一层是浏览器或者APP,第一步先访问DNS-server,由域名拿到nginx的外网IP(2)负载均衡层,ngi转载 2017-10-12 10:40:55 · 1560 阅读 · 0 评论 -
mongo 脚本整理
1 修改某列名称 db.playerMgr.update({},{$rename:{"id":"playerId"}},false,true)2 删除某列db.players.update({},{$unset:{'stage':''}},false,true)原创 2017-09-23 16:56:40 · 998 阅读 · 0 评论 -
游戏服务器架构图
1:ARPG类型游戏2:MMORPG3:MOBA4:卡牌类5:棋盘类原创 2017-08-24 10:52:06 · 4768 阅读 · 4 评论 -
mongodb常用命令脚本化-自动化运维
mongodb常用命令脚本化-自动化运维把一些运维中常用到的mongodb命令写成shell脚本,极大的方便了维护1 设置副本集#!/bin/bash#mongodb 进入client 并use admincd /usr/mongodb/binMongoDB='./mongo 192.168.1.7:37017'$MongoDB use admin原创 2017-09-04 10:07:08 · 683 阅读 · 0 评论 -
王者荣耀的帧同步机智
这是王者荣耀技术分析系列第二篇,有兴趣请持续关注。1、像《王者荣耀》一样红过2、从《王者荣耀》来聊聊游戏的帧同步3、游戏服务器的架构演进农药自从上线以来,依靠着强大的产品力以及腾讯的运营能力,在游戏市场上表现可谓是风生水起,根据第三方的调研数据显示,《王者荣耀》渗透率达到22.3%,用户规模达到2.01亿人,每日的日活跃用户(DAU)均值为5412.8万原创 2017-07-05 17:25:51 · 8115 阅读 · 1 评论 -
ZeroMQ
1 ZeroMQ概述ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间。2 系统架构2.1总体架构ZeroMQ几乎所有的I/O操作都是异步的,主线程不原创 2017-06-13 16:08:18 · 23555 阅读 · 0 评论 -
Thrift server端的几种工作模式分析
Thrift服务器端几种工作模式分析与总结Thrift为服务器端提供了多种工作模式,本文中将涉及以下5中工作模式:TSimpleServer、TNonblockingServer、THsHaServer、TThreadPoolServer、TThreadedSelectorServer,这5中工作模式的详细工作原理如下:1. TSimpleServer模式TSim原创 2017-06-29 15:11:57 · 425 阅读 · 0 评论 -
游戏服务端究竟解决了什么问题?
转自:点击打开链接1.写在前面既然是游戏服务端程序员,那博客里至少还是得有一篇跟游戏服务端有关的文章,今天文章主题就关于游戏服务端。写这篇博客之前也挺纠结的,一方面是因为游戏服务端其实不论架构上还是具体一些逻辑模块的构建,都属于非常成熟的技术,举个简单的例子,像端游的多zone/scene/game进程+单全局进程架构,网上随便一搜能搜出来几十篇内容差不多的。另一方面是因为中国特色转载 2016-12-27 14:16:22 · 1962 阅读 · 2 评论 -
加班是什么,可以吃吗?
打从我上小学开始,凡事时间表或议程以外的事务,我都很抗拒,就如学校下课后,学校给我补课一样,在我还是学生的时候,为了抗议学校这种恶势力的「加」课行为,我都不出席表示抗议,在老师眼里,我是个坏学生。因为有一个大原则,补课的东西,我已经会了,既然懂了为何还要补!没错就是这个大原则。瞬间逃离了传统封建思维的教育制度,我彷彿能够感应到自由社会给我的空间感,在踏入「上班」这个行列之前,我都是这样想的。别以为「原创 2015-07-06 16:36:03 · 677 阅读 · 0 评论 -
MongoDB官方C#驱动中查询条件Query用法
Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.And(Query.EQ("name", "a"), Query.EQ("title", "t"));//同时满足多个条件 Query.EQ("name", "a");//等于 Query.Exists("type", true);//判断键值是否存在 Query原创 2015-05-23 17:57:01 · 5157 阅读 · 0 评论 -
protobuf协议语言指南
Protobuf语言指南转自:http://blog.csdn.net/zhaozheng7758/article/details/6749047l 定义一个消息(message)类型l 标量值类型l Optional 的字段及默认值l 枚举l 使用其他消息类型l 嵌套类型l 更新一个消息类型l 扩展l转载 2015-05-11 10:09:08 · 492 阅读 · 0 评论 -
xml schema中的命名空间
1.名称空间 名称空间是W3C推荐标准提供的一种统一命名XML文档中的元素和属性的机制。使用名称空间可以明确标识和组合XML文档中来自不同标记词汇表的元素和属性,避免了名称之间的冲突。 1.1声明名称空间 名称空间声明的一般形式为:第一部分是一个关键字xmlns:,第二部分是名称空间的前缀,第三部分是一个等号,第四部分是双引号,将第五部分的名称空间标识URI包括转载 2012-07-12 16:37:08 · 931 阅读 · 0 评论 -
并行程序“锁”相关
注:本文发表于《程序员》2011年第8期并行编程专栏,略有删改。 在并行程序中,锁的使用会主要会引发两类难题:一类是诸如死锁、活锁等引起的多线程Bug;另一类是由锁竞争引起的性能瓶颈。本文将介绍并行编程中因为锁引发的这两类难题及其解决方案。1. 用锁来防止数据竞跑 在进行并行编程时,我们常常需要使用锁来保护共享变量,以防止多个线程同时对该变量进行更新时产生数据竞跑(Data原创 2012-06-28 09:54:43 · 905 阅读 · 0 评论 -
最新的逻辑题,看看你的智力。
1. 一天, harlan的店里来了 一位顾客,挑25 元的货,顾客拿出 100 元, harlan没零钱 找不开,就到隔壁飞白的店里把这 100 元换成零钱,回来给 顾客找了 75 元零钱。过一会, 飞白来找 harlan,说刚才的是假钱, harlan马上给飞白换了张真钱,问 harlan赔了多少钱 (低) ?2. 以5只猫 5分钟捉 5只老鼠的速度计算,要在 100 分钟内捉 1原创 2012-02-29 17:19:47 · 3302 阅读 · 2 评论 -
KBASE工作总结
1、 在 KBASE 中,数据库是一个逻辑概念,不需独立的存储空间。一个数据库可以包含多个表,但这些表并不需要存储在同一位置。因此,数据库和表之间是一种松散的关系。系统缺省状态下有三个数据库:SYSTEM、TEMP、DEFAULTDB。原创 2012-03-21 10:02:13 · 1909 阅读 · 0 评论 -
VS 2010项目中添加lib库
VS 2010项目中添加lib库 应用程序使用外部库时需要进行加载,两种库的加载本质上都是一样:提供功能和功能的定义。vs2005 c++ 项目设置外部库方法如下:1. 添加编译所需要(依赖)的 lib 文件 在“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“winsock.lib”,多个 lib 以空格隔开。等同于“#pragma comment原创 2012-03-19 11:32:46 · 27279 阅读 · 3 评论 -
B 树、 B- 树、 B+ 树、 B* 树都是什么
B树、 B- 树、 B+ 树、 B*树都是什么B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如:B树的搜索,从根结点开始,如果查询的关键字与结点的关键字原创 2012-04-01 13:39:20 · 1469 阅读 · 1 评论 -
SQL Server 2012 的12个激动人心的功能
微软已经发布了众所期待的 SQL Server 2012,让我们来看看这个新版给我们带来了什么激动人心的功能吧。1. AlwaysOn - 这个功能将数据库的镜像提到了一个新的高度。用户可以针对一组数据库做灾难恢复而不是一个单独的数据库。2. Windows Server Core 支持 - Windows Server COre 是命令行界面的 Windows,使用 DO原创 2012-03-16 13:11:57 · 1013 阅读 · 0 评论 -
国内知名产品和他们的开发语言
全文转自:CSDN : leezy_2000 (http://blog.csdn.net/leezy_2000/article/details/7082852)首先要声明的是:这个列表既不权威,也不全面,所有信息仅供参考,本人也不对由此导致的任何后果负任何责任。建立这个列表的初衷来自三个方面:一个是很多人在加入程序员这个行业前,需要对编程语言有一个大致的认知转载 2012-03-29 08:56:44 · 906 阅读 · 1 评论 -
菜鸟的成长
转自:CSDN:imzhjy1、指针很难用,考得很烦——指针很好用,正确的用法不会出错——引用效果更好2、const干嘛的,多余——哦,可以这样用——还可以那样用——还真有效果——OMG,原来还可以这样用3、异常是什么,好像经常说——我都工作几年了,还不知道到底有什么存在的意义——哦,原来是这样,这种情况下没它还不行——总结出错误处理机制4、模板是什么,有用吗—原创 2012-08-21 21:05:01 · 749 阅读 · 0 评论 -
assert的使用
建议在以下情况使用assert1、函数指针入参,如果在函数里直接使用的话要保证指针不为NULL2、保证除数不为03、在内存申请后要确保申请成功4、函数的返回值和出参,要保证其值不会导致系统崩溃原创 2012-09-06 18:12:46 · 628 阅读 · 0 评论 -
弱联网手游如何防作弊?
在刚刚举行的MDCC活动上,乐元素CTO凌聪分享了一个非常有意思的话题:移动游戏如何进行防作弊的攻防战。 凌聪分析了作弊(主要是弱联网休闲游戏的作弊)的影响,比如改变排行榜中的全局排行与好友排行,还会影响广告投放,带来经济损失。他从弱联网游戏可能存在的多种安全问题来分析玩家或破解者可能采用的手段以及研发商可以采取的对策。最后他总结了对各种问题的解决方案。 存档被篡改:AES、限转载 2014-11-19 11:29:17 · 2130 阅读 · 0 评论 -
VS2010 C++最简单的检查内存泄露
首先,在文件头添加下面的内容:#ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else#define DEBUG_CLIENTBLOCK#endif#define _CRTDBG_MAP_ALLOC#include #include #ifdef _DEBUG#def原创 2013-05-21 16:27:17 · 3967 阅读 · 0 评论 -
Linux字体安装
复制或建立链接cd /usr/fontsln -s /homeolf/tools/fonts xpfontscd xpfontsmkfontscalemkfontdir这样作和把字体拷贝到/usr/fonts的一个目录下的效果是一样的。后面的两个mkfont命令是生成xpfonts目录下所包含的字体的索引信息。然后运行fc-cache命令更新字体缓存:fc-ca原创 2013-04-12 10:30:57 · 914 阅读 · 0 评论 -
32位移植到64位 注意事项
32bit-64bit porting work注意事项64位服务器逐步普及,各条产品线对64位升级的需求也不断加大。在本文中,主要讨论向64位平台移植现有32位代码时,应注意的一些细小问题。什么样的程序需要升级到64位?理论上说,64位的操作系统,对32位的程序具有良好的兼容性,即使全部换成64位平台,依然可以良好的运行32位的程序。因此,许多目前在32位平台上运行良好的程序也许不必原创 2013-03-15 14:57:03 · 17662 阅读 · 0 评论 -
SQL server 2008 关于XML类型数据 功能总结及性能测试
一、SQL Server 对XML数据功能支持SQL Server 2000 对XML 的支持在SQL Server2000 中,标准的T-SQL Select 语句引入了FOR XML 子句,FOR XML 是Select 语句的扩展,返回的查询结果是XML 流,它以XML 文档形式形成一个查询结果集。FOR XML 子句有三种模式Raw、Auto 和Explicit,每个都能对XML原创 2012-11-23 10:28:32 · 15624 阅读 · 0 评论 -
sqlserver xml语句入门
1、xml: 能认识元素、属性和值 2、xpath: 寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁) 语法格式,这些语法可以组合为条件: " ." 表示自己," .." 表示父亲," /" 表示儿子," //" 表示后代, " name" 表示按名字查找," name"原创 2012-11-14 09:57:37 · 1720 阅读 · 0 评论