- 博客(5)
- 收藏
- 关注
原创 Web 开发前后端分离的前世今生
(1)以前刀耕火种的年代,大多数项目 java 程序员既要处理前端(ajax/jquery/js/html/css等),又要处理后端(java/mysql/oracle等),负担比较重。以 JSP/Servlet 为例,前端工程师做好 HTML 后,需要由后端的 java 工程师来将 HTML 修改成 jsp 页面,页面中充斥着标签、java 表达式和html 代码,比较混乱,而且修改问题需要双方...
2018-12-10 11:05:09
411
原创 Redis 分布式锁的正确编写方式
在不同进程需要互斥地访问共享资源时,在业务中体现为多个实例需要同时访问同一个 redis 的共享资源,分布式锁是一种非常有用的技术手段,我们可以使用 redis 实现它。(1) 为了确保这个 redis(业务里 redis 为单机版) 锁是可用的,需要满足一些条件: a.互斥性。在任意时刻,只有一个 jedis 客户端能持有锁。 b.不会发生死锁。即使有一个 jedis 客户...
2018-12-10 10:51:44
212
原创 分布式系统统一登录模块设计
维基百科对于单点登录的定义: 单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一退出(s...
2018-12-10 10:31:35
6897
原创 Java 线程重入的理解
线程安全函数的概念比较直观,众所周知,同一进程的不同线程会共享同一主内存,若要保证线程安全,则必须通过加锁的方式。一旦有一个线程访问某个对象的 synchronized 修饰的方法或代码区域时,该线程则获取这个对象的锁,其他线程不能再调用该对象被 synchronized 影响的任何方法。 如果这个线程自己调用该对象的其他 synchronized 方法,Java 是如何判定的?这...
2018-12-10 10:27:16
677
原创 Redis 的缓存与淘汰机制
Redis 内存淘汰指的是用户存储的一些键被可以被 Redis 主动地从实例中删除 淘汰机制和 Redis 最大占用内存 maxmemory 值以及过期时间 expireTime 紧密相连,典型的例子是: a.客户端发起了需要申请更多内存的命令(如set)。 b.Redis 检查内存使用情况,如果已使用的内存大于 maxmemory 则开始...
2018-12-10 10:23:24
1623
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人