负载均衡算法

负载均衡 负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题,这种集群技 … 继续阅读

Redis RPush 命令

今天帮订单组那边,设计一个基于redis的消息系统,和架构师聊的时候,他建议了我使用RPush命令。RPush命令的返回结果是,操作之后列表的长度,这个在某些场合有一些特殊妙用。于是整理个文章来记录RPush命令 Redis Rpush 命令 Redis Rpush 命令用于将一个或多个值插入到列表的尾部(最右边)。 如果列表不存在,一个空列表会被创建并执行 RPUSH 操作。 当列表存在但不是列 … 继续阅读

Redis协议(RESP)

通信协议(protocol) Redis 协议在以下三个目标之间进行折中: * 易于实现 * 可以高效地被计算机分析(parse) * 可以很容易地被人类读懂 网络层 客户端和服务器通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 。客户端和服务器发送的命令或数据一律以 \r\n (CRLF)结尾。 请求 Redis 服务器接受命令以及命令的参数。服务器会在接到命令之后,对命令进 … 继续阅读

Redis的类型系统

Redis 对象系统 Redis 的每一种数据类型,比如字符串、列表、有序集, 它们都拥有不只一种底层实现(Redis 内部称之为编码,encoding), 这说明, 每当对某种数据类型的键进行操作时, 程序都必须根据键所采取的编码, 进行不同的操作。 redisObject 是 Redis 类型系统的核心, 数据库中的每个键、值,以及 Redis 本身处理的参数, 都表示为这种数据类型。 red … 继续阅读

锁与并发

前言 最近在看锁相关的东西,顺便梳理了一下Java领域的锁。Java里面按锁的轻重,可以分为轻量级锁和重量级锁。这些锁的整理,对理解GC日志也有帮助 锁的状态 锁的状态总共有四种:无锁状态、偏向锁、轻量级锁和重量级锁。 重量级锁 上篇文章中向大家介绍了Synchronized的用法及其实现的原理。现在我们应该知道,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。 … 继续阅读

Java三种代理模式

Java三种代理模式 静态代理、动态代理和cglib代理 代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 静态代理 这种代理 … 继续阅读