Jesse' Notes

我干了什么 究竟拿时间换了什么

微信扫码登录过程

打开网页版微信,可以看到如下的页面: 解析出来 1 https://weixin.qq.com/x/4ZbMwJZkD_wfL9Lwu3jX 用户 A 访问微信网页版,微信服务器为这个会话生成一个全局唯一的 ID,上面的 URL 中 4ZbMwJZkD_wfL9Lwu3jX 就是这个 ID,此时系统并不知道访问者是谁。 用户A打开自己的手机微信并扫描这个二维码,并提示用户是否确...

RedLock实现分布式锁

分布式啊啊啊啊

参考:RedisDoc 普通实现 之前学到的Redis实现分布式锁是setnx+lua,和set key value px milliseconds nx 1 2 3 4 5 6 7 8 9 - 获取锁(unique_value是唯一的可以使是UUID等) SET resource_name unique_value NX PX 30000 - 释放锁(lua脚本中,一定要比较value...

(四)Redis高可用性的实现

《Redis设计与实现》学习笔记

参考:Redis的设计与实现 [TOC] Redis的从服务器挂了,一般有多个从服务器,所有影响不大。但是一旦主服务器挂了,怎么办? Redis提供了哨兵(Sentinal)机制供我们解决上面的情况。如果主服务器挂了,哨兵机制能够察觉出,然后将某个从服务器升级为主服务器,等到旧的主服务器(挂掉的那个)重连上来,会将它(挂掉的主服务器)变成从服务器。 这个过程叫做主备切换(故障...

Optional的正确使用姿势

写出优雅的代码

Optional 中我们真正可依赖的应该是除了 isPresent() 和 get() 的其他方法: 1 2 3 4 5 6 7 public<U> Optional<U> map(Function<? super T, ? extends U> mapper) public T orElse(T other) public T orElseGet(Sup...

(三)Redis主从复制的实现

《Redis设计与实现》学习笔记

参考:Redis的设计与实现 [TOC] 一、主从架构 1.1 为什么要主从 Redis的内存是有限的。 单台Redis支持的并发量也是有限的。 实现高可用性 Redis作者Salvatore Sanfilippo已将Master/Slave架构改名为Master/Replica 1.2 主从特点 主服务器负责接收写请求 从服务器负责接收读请求 从服...

(二)Redis单机数据库的实现

《Redis设计与实现》学习笔记

参考:Redis的设计与实现 Redis官方文档 一、Redis服务器中的数据库 Redis服务器中也有数据库这么一个概念。如果不指定具体的数量,默认会有16个数据库。 1 select 15 这说明,数据库与数据库之间的数据是隔离的。 1.1 Redis数据库的原理 Redis服务器用redisServer结构体来表示,其中redisDb是一个数组,用来保存所有的数据库,db...

(一)Redis数据结构的设计

《Redis设计与实现》学习笔记

参考:Redis的设计与实现 [TOC] Redis的数据结构 Redis 命令参考:http://doc.redisfans.com/ try Redis(不用安装Redis即可体验Redis命令):http://try.redis.io/ 1 首先 1 "Redis is written in ANSI C"-->Redis由C语言编写 首先还是得声明一下,Redis...

InnoDB为什么高并发

一、并发控制 为啥要进行并发控制? 并发的任务对同一个临界资源进行操作,如果不采取措施,可能导致不一致,故必须进行并发控制(Concurrency Control)。 技术上,通常如何进行并发控制? 通过并发控制保证数据一致性的常见手段有: 锁(Locking) 数据多版本(Multi Versioning) 二、锁 如何使用普通锁保证一致性? 普通锁,被使用最多: ...

Redis笔记之数据安全与性能保障

一、持久化 Redis拥有两种不同形式的持久化方法: 第一种快照持久化。 快照就是在某个时间点上获得存储在内存里面的数据的副本。 1 2 3 4 5 6 向Redis发送BGSAVE命令,Redis会调用fork来创建一个子进程,然后子进程负责将快照写入硬盘,而父进程则继续处理命令请求。 还可以配置save选项,例如SAVE 60 10000 即60s内完成10000次操作即可触发B...

Innodb和myisam几个知识点

MyISAM和InnoDB date: 2017-06-26 16:28:09 title: MyISAM和InnoDB几个知识点 categories: 数据库 tags: InnoDB MyISAM 说说MySQL两个最常用的存储引擎,MyISAM和InnoDB。 一、关于count(*) 1 MyISAM会直接存储总行数,InnoDB则不会...