游戏算法系列 - 字典树

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

2019-06-28 11:21:55

阅读数 22

评论数 0

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

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

2019-06-25 16:50:06

阅读数 24

评论数 0

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

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

2019-06-25 16:48:15

阅读数 83

评论数 0

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

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

2019-06-25 15:56:47

阅读数 55

评论数 0

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

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

2017-07-18 22:03:44

阅读数 2179

评论数 0

redis微博——拉模型

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

2017-06-13 15:32:13

阅读数 1020

评论数 0

redis微博——推模型

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

2017-06-13 14:45:13

阅读数 522

评论数 2

redis中的事务

redis与mysql的事务Redis支持简单的事务简单使用讲张三的100圆钱转账给lisi:set zhangsan 800 set lisi 100 multi decrby zhangsan 100 incrby lisi 100 exec失败的两种情况在mutil后面的语句中, 语句出错可...

2017-06-07 14:40:23

阅读数 284

评论数 0

session垃圾回收机制

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

2017-06-07 08:29:11

阅读数 895

评论数 0

禁用cookie后,如何使用session?

问题大家都知道,session的sessionid是通过cookie来保存的,那么如果我们的浏览器禁用了cookie,还可以使用session吗?这道面试题是不是经常被问?你能答得出来吗?禁用cookie后,session还是可以使用的。禁用后的情况禁用cookie后,服务器每次session_s...

2017-06-06 16:36:19

阅读数 9788

评论数 0

php文件下载

<?php /** * 文件下载 * @param string $file_name 文件名 * @param string $file_sub_dir 文件子路径 * @return void */ function down_file(...

2017-06-05 20:49:59

阅读数 325

评论数 0

cookie的domain实战

setcookie方法bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httpo...

2017-06-05 14:11:23

阅读数 3391

评论数 2

集群环境下的session问题

问题假设我们有4台服务器,1台做负载均衡器,其余3台做web节点服务器,并将这3台服务器做一个负载均衡。我们给这3台服务器标记一下,为1、2、3号服,假设某个用户发出登录请求,正好落在1号服上,登录成功,接着用户又发出了第2个请求,这个时候正好落在了2号服务器上,这里我用的是Nginx服务器,Ng...

2017-06-04 11:17:34

阅读数 498

评论数 0

Nginx连接Memcached

前言之前这篇文章PHP与Memcached实战说的是php怎么连memcached,文中主要写的是php连接memcached的api。Nginx连接Memcached架构图首先请求Nginx,Nginx去连接Memcached,从中读取数据,如果不存在,就使用PHP连接MySQL,在数据库中读取...

2017-06-03 17:09:27

阅读数 503

评论数 0

Nginx expires缓存

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

2017-06-02 23:17:58

阅读数 4544

评论数 0

Nginx gzip压缩

gzip配置的常用参数gzip on|off; #是否开启gzip gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?) gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源) gzip_disabl...

2017-06-02 16:04:01

阅读数 391

评论数 0

MySQL主从复制(读写分离)

主从复制/读写分离假设有4台数据库服务器需要做集群,我们可以将其中1台做主服务器,然后剩下的3台做从服务器,从服务器负责从主服务器复制数据,所以叫做主从复制。在业务层面,如果有读取操作,我们可以从3台从服务器中读取,如果是更新操作,我们指定操作主服务器,那么对于主服务器的更改就会复制到3台从服务器...

2017-05-28 22:15:34

阅读数 362

评论数 0

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

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

2017-05-27 21:14:48

阅读数 1265

评论数 0

使用MySQLAdmin工具查看QPS

代码:./bin/mysqladmin -r -i 1 -uroot -p1234 ext| awk '/Queries/{printf("QPS:%d\n",$4)}/Threads_connected/{printf("Threads_connected:%d\n...

2017-05-26 15:48:27

阅读数 451

评论数 0

Nginx反向代理与负载均衡

集群集群就是指一组或若干个相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。集群给用户的感觉就是一台服务器,而实际用户请求的是一组集群服务器。负载均衡集群负载均衡集群可以把许多客户集中的访问请求负载压力尽可能平均地分...

2017-05-25 13:21:22

阅读数 302

评论数 0

提示
确定要删除当前文章?
取消 删除