5 webbc

尚未进行身份认证

暂无相关描述

等级
TA的排名 1w+

游戏算法系列 - 字典树

简介trie是一种搜索树,也称为字典树。最大的特点是共享字符串的公共前缀来达到提高效率的目的。 trie的核心思想是空间换时间,缺点是内存占用高 最大限度地减少无谓的字符串比较,查询效率比哈希表高性质根节点不包含字符,除根节点外每一个节点都只包含一个字符。 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。 每个节点的所有子节点包含的字符都...

2019-06-28 11:21:55

游戏服务器架构系列 - 一致性Hash

一致性Hash作用主要是为了解决因为后端服务节点的动态删减导致节点不能正常服务的问题。特别是在分布式缓存系统中,如果某台服务器失效,或者需要新增服务器,对于整个系统来说如果不采用合适的算法来保证一致性,那么缓存于系统中的所有数据都可能会失效,即由于系统节点数目变少或增多,客户端在请求某一数据时需要计算hash值,所以很可能找不到保存该数据的服务器节点,因此一致性hash就显得至关重...

2019-06-25 16:50:06

游戏服务器架构系列 - 分布式ID生成

为什么要生成分布式ID?在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。例如在游戏中,游戏数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求,那业务系统对ID号的要求有哪些呢?1)全局唯一性:不能出现重复的ID号,既然是唯一标识,这是最基本的要求。2)趋势递增:在MySQLInnoDB引擎中使用的是聚集索引,...

2019-06-25 16:48:15

游戏服务器架构系列 - 网关限流

为什么要进行网关限流?手游的架构通常是客户端通过Socket连接直连网关,所有请求都需要经过网关,然后由网关统一进行转发,所以只需在网关进行限流即可。常见的算法主要有计数器限流、令牌桶限流和漏桶限流,这些算法都是单机的算法,正好可以用在网关限流。算法1、计数器限流严格意义上来说计数器限流不属于限流算法,使用计数器来进行限流,主要用来限制总并发数,比...

2019-06-25 15:56:47

下拉滚动,导航条悬停在顶部

效果图以前总觉得这个效果很绚,但是写不出来,最近出来实习了,老师教了这个效果,我给他贴出来,感觉很简单。说明首先导航条上边的部分占150像素,导航条本身40像素,首先得在css中定义一个class,这个class也就是定位之后的结果,又由于我的导航条进来有动画的,所有top值首先设为-40px,然后从-40px的位置出现,这个40px也正好是导航条的高度。/*固定定位*/.fixed{p

2017-07-18 22:03:44

redis微博——拉模型

上回写了一篇推模型的内容,这回分享一篇拉模型的内容。拉模型拉模型就是展示微博的时候,获取自己的所有关注的人,然后从关注的人中拉取最新微博。微博项目数据结构设计user表设计注册的时候将user数据写入redis中,key如下:user数据的key用户名=user:uesrid:$uesrid:username密码=user:userid:$userid:password还需要这样写一份,因为需

2017-06-13 15:32:13

redis微博——推模型

最近在看了一下关于redis的内容,然后利用redis写了一个简单的微博项目,这篇文章是关于推模型的。推模型所谓推模型,就是用户在发布微博的时候会将微博推送给关注者和自己,然后其他关注者登录之后就可以看到发布的微博。微博项目数据结构设计user表设计注册的时候将user数据写入redis中,key如下:user数据的key用户名=user:uesrid:$uesrid:username密码=u

2017-06-13 14:45:13

redis中的事务

redis与mysql的事务Redis支持简单的事务简单使用讲张三的100圆钱转账给lisi:setzhangsan800setlisi100multidecrbyzhangsan100incrbylisi100exec失败的两种情况在mutil后面的语句中,语句出错可能有2种情况,还是以转账的情况来分析:(1)语法就有问题127.0.0.1:6379>multiOK

2017-06-07 14:40:23

session垃圾回收机制

session过期时间在php.ini文件中有这样一个配置,这个配置表示session文件过期时间,默认的话是1440秒,也就是24分钟,这个24分钟是session的发呆时间,如果在24分钟内没有对session进行操作,那么session文件就会过期,如果在23分钟的时候操作了session,那么就会又有24分钟的过期时间,如果过期了,该session被服务器认为是垃圾。session.gc_m

2017-06-07 08:29:11

禁用cookie后,如何使用session?

问题大家都知道,session的sessionid是通过cookie来保存的,那么如果我们的浏览器禁用了cookie,还可以使用session吗?这道面试题是不是经常被问?你能答得出来吗?禁用cookie后,session还是可以使用的。禁用后的情况禁用cookie后,服务器每次session_start的时候都会创建一个单独的session文件,后果就是无法让多个页面共享同一份session解决方

2017-06-06 16:36:19

php文件下载

<?php/***文件下载*@paramstring$file_name文件名*@paramstring$file_sub_dir文件子路径*@returnvoid*/functiondown_file($file_name,$file_sub_dir){//1、将文件名转码$file_name

2017-06-05 20:49:59

cookie的domain实战

setcookie方法boolsetcookie(string$name[,string$value[,int$expire=0[,string$path[,string$domain[,bool$secure=false[,bool$httponly=false]]]]]])在setcookie方法中,第5个参数是domain参数,通过这

2017-06-05 14:11:23

集群环境下的session问题

问题假设我们有4台服务器,1台做负载均衡器,其余3台做web节点服务器,并将这3台服务器做一个负载均衡。我们给这3台服务器标记一下,为1、2、3号服,假设某个用户发出登录请求,正好落在1号服上,登录成功,接着用户又发出了第2个请求,这个时候正好落在了2号服务器上,这里我用的是Nginx服务器,Nginx服务器集群默认采用的是轮询算法,所以会接着落在第2号服务器上,但是尴尬的是,我的用户session

2017-06-04 11:17:34

Nginx连接Memcached

前言之前这篇文章PHP与Memcached实战说的是php怎么连memcached,文中主要写的是php连接memcached的api。Nginx连接Memcached架构图首先请求Nginx,Nginx去连接Memcached,从中读取数据,如果不存在,就使用PHP连接MySQL,在数据库中读取数据,然后将数据在复制到Memcached一份。Memcachedkeymemcached是k/v存储

2017-06-03 17:09:27

Nginx expires缓存

expires缓存对于网站的图片,尤其是新闻站,图片一旦发布,改动的可能是非常小的.我们希望能否在用户访问一次后,图片缓存在用户的浏览器端,且时间比较长的缓存。可以,用到nginx的expires设置。nginx中设置过期时间,非常简单。在location或if段里,来写。设置格式expires30s;#30秒expires30m;#30分钟expires2h;#2个小时e

2017-06-02 23:17:58

Nginx gzip压缩

gzip配置的常用参数gzipon|off;#是否开启gzipgzip_buffers324K|168K#缓冲(压缩在内存中缓冲几块?每块多大?)gzip_comp_level[1-9]#推荐6压缩级别(级别越高,压的越小,越浪费CPU计算资源)gzip_disable#正则匹配UA什么样的Uri不进行gzipgzip_min_length200#开始压缩的

2017-06-02 16:04:01

MySQL主从复制(读写分离)

主从复制/读写分离假设有4台数据库服务器需要做集群,我们可以将其中1台做主服务器,然后剩下的3台做从服务器,从服务器负责从主服务器复制数据,所以叫做主从复制。在业务层面,如果有读取操作,我们可以从3台从服务器中读取,如果是更新操作,我们指定操作主服务器,那么对于主服务器的更改就会复制到3台从服务器上,保证了读取的可靠性,这就是读写分离。实现原理1、主服务器凡运行语句,都产生一个二进制日志bin-l

2017-05-28 22:15:34

exists子查询真的就比连接查询慢吗?

问题前面有篇文章in型子查询的陷阱,里面给出的案例体现的是in型子查询的效果比连接查询慢,今天我们来看看另一个例子,来看看exist子查询真的就比连接查询慢吗?案例商品表:goods栏目表:category查询出包含商品的栏目。连接查询selectcategory.cat_id,cat_namefromcategoryinnerjoingoodsoncategory.cat_

2017-05-27 21:14:48

使用MySQLAdmin工具查看QPS

代码:./bin/mysqladmin-r-i1-uroot-p1234ext|awk'/Queries/{printf("QPS:%d\n",$4)}/Threads_connected/{printf("Threads_connected:%d\n",$4)}/Threads_running/{printf("Threads_running:%d\n",$4)}'执行结果:参考文

2017-05-26 15:48:27

Nginx反向代理与负载均衡

集群集群就是指一组或若干个相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。集群给用户的感觉就是一台服务器,而实际用户请求的是一组集群服务器。负载均衡集群负载均衡集群可以把许多客户集中的访问请求负载压力尽可能平均地分摊在计算机集群中处理。这样的系统非常适合使用同一组应用程序为大量用户提供服务的模式,每个节点都可以承担一

2017-05-25 13:21:22

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。