alpha 的博客

何晓东 的博客 | alpha blog

Redis 获取大 key 的几种方式

Redis 获取大 key 的几种方式

Redis在遇到数据量暴增或者业务没处理好的时候,会产生很多大的hash,set,这样的对象对 Redis 的集群数据迁移带来了很大的问题,因为在集群环境下,如果某个 key 太大,会数据导致迁移卡顿。另外在内存分配上,如果一个 key 太大,那么当它需要扩容时,会一次性申请更大的一块内存,这也会导致卡顿。如果这个大 key 被删除,内存会一次性回收,卡顿现象会再一次产生。如果你观察到red...

Office 文档在线预览的几种方案

Office 文档在线预览的几种方案

需求是office文档的在线预览,同时尽量保护版权,然后发现了几种成熟的方案: office 在线预览服务 微软官方提供的服务,预览和编辑效果是最好的,当然微软支持自己搭建这个环境 例如链接:https://view.officeapps.live.com/op/view.aspx?src=http%3A%2F%2Fvideo.ch9.ms%2Fbuild%2F2011%2Fslides...

守护 Redis 安全的几个策略

守护 Redis 安全的几个策略

Redis常规安全模式 Redis 被设计成仅有可信环境下的可信用户才可以访问。这意味着将 Redis 实例直接暴露在网络上或者让不可信用户可以直接访问 Redi s的 tcp 端口或 Unix 套接字,是不安全的。 正常情况下,使用Redis的web应用程序是将Redis作为数据库,缓存,消息系统,网站的前端用户将会查询Redis来生成页面,或者执行所请求的操作,或者被web应用程序用...

Redis PubSub 消息定义与发布模式

Redis PubSub 消息定义与发布模式

Redis的PubSub 模式即: 基于事件的系统中,Pub/Sub 是目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式:订阅者(如客户端)以事件订阅的方式表达出它有兴趣接收的一个事件或一类事件;发布者(如服务器)可将订阅者感兴趣的事件随时通知相关订阅者。 消息发布者,即 publish 客户端,无需独占链接,你可以在 publish 消息的...

使用 Redis HyperLogLog 统计 UV 数据

使用 Redis HyperLogLog 统计 UV 数据

大概使用场景是统计几个活动页面的单独和总UV数量,可以偏差0-1.5% 实现逻辑:前端对于登陆或者未登录用户生成一个唯一ID,例如可以是 md5(ip+user-agent) + hashcode, 同时也能区分一个路由器下的多个设备,UV 的生存时间根据需求来确定,一般情况下是到 24 小时过期,有些是活动结束己过期。多数方案会将这写唯一 ID 存到 redis set 中,这会...

Redis 消息队列的常见问题及解决方案

Redis 消息队列的常见问题及解决方案

前置条件:需要了解 redis list 的定义和使用,然后在考虑在当成消息队列的时候,会遇到的问题及解决方案。 Redis的消息队列缺少一些高级特性,没有 ack 保证,如果对消息的可靠性有着极致的追求,那么它就不适合使用。 常规实现:Redis 的 list(列表) 数据结构常用来作为异步消息队列使用,使用rpush/lpush 操作入队列,使用 lpop\rpop 来出队列...

互联网意见教主与信徒们

互联网意见教主与信徒们

  哪里有什么主义,都是生意。 ​  聊微博意见教主,四五年前,可以聊的是各路PS出家的股神,经济学家,公知,他们比较在意信徒们的信仰,时间走到今天,过去的那些滚去加密货币圈当骗子了,或者教主,反正都是骗钱去了,时间走到现在,互联网教主们的生意主要是女权相关的生意多了。   不得不说过去,那些股神教主们,现在还在装逼的真的是脸皮太厚了,也可能是当初深信他们的,家破人亡了,然后新的粉丝并不...

Web 性能优化的几个策略

Web 性能优化的几个策略

个人理解优化最开始需要做的是:将现有资源有效利用到极致,然后在做更多提升。开发人员多了解一些优化技术,不仅可以怒斥前端写的代码辣鸡,甚至可以和架构师谈笑风生。😀 在进行 web 性能优化之前,我们先重温一下,访问一个页面地址到浏览器渲染完页面,都有哪些过程: 资源请求/获取流程图: 资源响应/页面渲染流程图: 这两张图无需额外解释了,所以 web 性能优化主要是针对这里的过...

Nginx 命令行参数

Nginx 命令行参数

-? -h — 打印命令行参数的帮助 -c file — 使用一个文件作为配置而不是默认配置文件 -g directives — 设置全局配置的指令,例如 nginx -g “pid /var/run/nginx.pid; w...

Nginx 层面配置基础用户验证

Nginx 层面配置基础用户验证

应用场景:大概是在内部网站需要外部用户访问到,同时不能给访问者网站账号权限,所以在 nginx 层面进行限制。例如外包项目,内部员工有账号进行文档的操作,外包员工没有内部账号,但需要让他们能够看到文档,所以在 nginx 层面设置用户验证是最佳最简单的选择,多数情况下雇主方不会给外包员工开一个基础访问权限的账号。 在 nginx 层面进行进行用户认证的前置条件:需要有对应的密码创建...