diff --git a/docs/cs-basics/data-structure/bloom-filter.md b/docs/cs-basics/data-structure/bloom-filter.md index 1431e97b1c8..ca6421e202f 100644 --- a/docs/cs-basics/data-structure/bloom-filter.md +++ b/docs/cs-basics/data-structure/bloom-filter.md @@ -260,7 +260,7 @@ root@21396d02c252:/data# redis-cli 1. **`BF.ADD`**:将元素添加到布隆过滤器中,如果该过滤器尚不存在,则创建该过滤器。格式:`BF.ADD {key} {item}`。 2. **`BF.MADD`** : 将一个或多个元素添加到“布隆过滤器”中,并创建一个尚不存在的过滤器。该命令的操作方式`BF.ADD`与之相同,只不过它允许多个输入并返回多个值。格式:`BF.MADD {key} {item} [item ...]` 。 -3. **`BF.EXISTS` ** : 确定元素是否在布隆过滤器中存在。格式:`BF.EXISTS {key} {item}`。 +3. **`BF.EXISTS`** : 确定元素是否在布隆过滤器中存在。格式:`BF.EXISTS {key} {item}`。 4. **`BF.MEXISTS`** : 确定一个或者多个元素是否在布隆过滤器中存在格式:`BF.MEXISTS {key} {item} [item ...]`。 另外,`BF.RESERVE` 命令需要单独介绍一下: @@ -272,7 +272,7 @@ root@21396d02c252:/data# redis-cli 下面简单介绍一下每个参数的具体含义: 1. key:布隆过滤器的名称 -2. error_rate :误报的期望概率。这应该是介于 0 到 1 之间的十进制值。例如,对于期望的误报率 0.1%(1000 中为 1),error_rate 应该设置为 0.001。该数字越接近零,则每个项目的内存消耗越大,并且每个操作的 CPU 使用率越高。 +2. error_rate : 期望的误报率。该值必须介于 0 到 1 之间。例如,对于期望的误报率 0.1%(1000 中为 1),error_rate 应该设置为 0.001。该数字越接近零,则每个项目的内存消耗越大,并且每个操作的 CPU 使用率越高。 3. capacity: 过滤器的容量。当实际存储的元素个数超过这个值之后,性能将开始下降。实际的降级将取决于超出限制的程度。随着过滤器元素数量呈指数增长,性能将线性下降。 可选参数: diff --git "a/docs/database/mysql/InnoDB\345\257\271MVCC\347\232\204\345\256\236\347\216\260.md" "b/docs/database/mysql/InnoDB\345\257\271MVCC\347\232\204\345\256\236\347\216\260.md" index e846088dbc3..83abbbceb60 100644 --- "a/docs/database/mysql/InnoDB\345\257\271MVCC\347\232\204\345\256\236\347\216\260.md" +++ "b/docs/database/mysql/InnoDB\345\257\271MVCC\347\232\204\345\256\236\347\216\260.md" @@ -149,7 +149,7 @@ - 此时最新记录的 `DB_TRX_ID` 为 102,m_up_limit_id <= 102 < m_low_limit_id,所以要在 `m_ids` 列表中查找,发现 `DB_TRX_ID` 存在列表中,那么这个记录不可见 -- 根据 `DB_ROLL_PTR` 找到 `undo log` 中的上一版本记录,上一条记录的 `DB_TRX_ID` 为 101,满足 102 < m_up_limit_id,记录可见,所以在 `T6` 时间点查询到数据为 `name = 李四`,与时间 T4 查询到的结果不一致,不可重复读! +- 根据 `DB_ROLL_PTR` 找到 `undo log` 中的上一版本记录,上一条记录的 `DB_TRX_ID` 为 101,满足 101 < m_up_limit_id,记录可见,所以在 `T6` 时间点查询到数据为 `name = 李四`,与时间 T4 查询到的结果不一致,不可重复读! 3. **`时间线来到 T9 ,数据的版本链为`:** @@ -212,4 +212,4 @@ - **《MySQL 技术内幕 InnoDB 存储引擎第 2 版》** - [Innodb 中的事务隔离级别和锁的关系](https://tech.meituan.com/2014/08/20/innodb-lock.html) -- [MySQL 事务与 MVCC 如何实现的隔离级别](https://blog.csdn.net/qq_35190492/article/details/109044141) \ No newline at end of file +- [MySQL 事务与 MVCC 如何实现的隔离级别](https://blog.csdn.net/qq_35190492/article/details/109044141) diff --git "a/docs/java/new-features/Java8\346\226\260\347\211\271\346\200\247\346\200\273\347\273\223.md" "b/docs/java/new-features/Java8\346\226\260\347\211\271\346\200\247\346\200\273\347\273\223.md" index bb490f54bf5..5016d4aaf58 100644 --- "a/docs/java/new-features/Java8\346\226\260\347\211\271\346\200\247\346\200\273\347\273\223.md" +++ "b/docs/java/new-features/Java8\346\226\260\347\211\271\346\200\247\346\200\273\347\273\223.md" @@ -118,7 +118,7 @@ Collections.sort(names, (String a, String b) -> { }); ``` -可以看出,代码变得更段且更具有可读性,但是实际上还可以写得更短: +可以看出,代码变得更短且更具有可读性,但是实际上还可以写得更短: ```java Collections.sort(names, (String a, String b) -> b.compareTo(a)); @@ -215,7 +215,7 @@ Person person = personFactory.create("Peter", "Parker"); ``` 我们只需要使用 `Person::new` 来获取Person类构造函数的引用,Java编译器会自动根据`PersonFactory.create`方法的参数类型来选择合适的构造函数。 -### Lamda 表达式作用域(Lambda Scopes) +### Lambda 表达式作用域(Lambda Scopes) #### 访问局部变量 @@ -423,15 +423,15 @@ Optional 是一个简单的容器,其值可能是null或者不是null。在Jav 译者注:示例中每个方法的作用已经添加。 ```java -//of():为非null的值创建一个Optional +//of():为非null的值创建一个Optional Optional optional = Optional.of("bam"); -// isPresent(): 如果值存在返回true,否则返回false +// isPresent(): 如果值存在返回true,否则返回false optional.isPresent(); // true //get():如果Optional有值则将其返回,否则抛出NoSuchElementException optional.get(); // "bam" -//orElse():如果有值则将其返回,否则返回指定的其它值 +//orElse():如果有值则将其返回,否则返回指定的其它值 optional.orElse("fallback"); // "bam" -//ifPresent():如果Optional实例有值则为其调用consumer,否则不做处理 +//ifPresent():如果Optional实例有值则为其调用consumer,否则不做处理 optional.ifPresent((s) -> System.out.println(s.charAt(0))); // "b" ``` @@ -484,7 +484,7 @@ forEach 是为 Lambda 而设计的,保持了最紧凑的风格。而且 Lambda .forEach(System.out::println);// aaa1 aaa2 ``` -需要注意的是,排序只创建了一个排列好后的Stream,而不会影响原有的数据源,排序之后原数据stringCollection是不会被修改的: +需要注意的是,排序只创建了一个排列好后的Stream,而不会影响原有的数据源,排序之后原数据stringList是不会被修改的: ```java System.out.println(stringList);// ddd2, aaa2, bbb1, aaa1, bbb3, ccc, bbb2, ddd1 @@ -502,7 +502,7 @@ forEach 是为 Lambda 而设计的,保持了最紧凑的风格。而且 Lambda .stream() .map(String::toUpperCase) .sorted((a, b) -> b.compareTo(a)) - .forEach(System.out::println);// "DDD2", "DDD1", "CCC", "BBB3", "BBB2", "AAA2", "AAA1" + .forEach(System.out::println);// "DDD2", "DDD1", "CCC", "BBB3", "BBB2", "BBB1", "AAA2", "AAA1" ``` @@ -649,7 +649,7 @@ parallel sort took: 475 ms//串行排序所用的时间 ## Maps -前面提到过,Map 类型不支持 streams,不过Map提供了一些新的有用的方法来处理一些日常任务。Map接口本身没有可用的 `stream()`方法,但是你可以在键,值上创建专门的流或者通过 `map.keySet().stream()`,`map.values().stream()`和`map.entrySet().stream()`。 +前面提到过,Map 类型不支持 streams,不过Map提供了一些新的有用的方法来处理一些日常任务。Map接口本身没有可用的 `stream()`方法,但是你可以在键,值上创建专门的流或者通过 `map.keySet().stream()`,`map.values().stream()`和`map.entrySet().stream()`。 此外,Maps 支持各种新的和有用的方法来执行常见任务。 diff --git "a/docs/system-design/authority-certification/SSO\345\215\225\347\202\271\347\231\273\345\275\225\347\234\213\350\277\231\344\270\200\347\257\207\345\260\261\345\244\237\344\272\206.md" "b/docs/system-design/authority-certification/SSO\345\215\225\347\202\271\347\231\273\345\275\225\347\234\213\350\277\231\344\270\200\347\257\207\345\260\261\345\244\237\344\272\206.md" index 7dab034ea54..62d420d8119 100644 --- "a/docs/system-design/authority-certification/SSO\345\215\225\347\202\271\347\231\273\345\275\225\347\234\213\350\277\231\344\270\200\347\257\207\345\260\261\345\244\237\344\272\206.md" +++ "b/docs/system-design/authority-certification/SSO\345\215\225\347\202\271\347\231\273\345\275\225\347\234\213\350\277\231\344\270\200\347\257\207\345\260\261\345\244\237\344\272\206.md" @@ -72,9 +72,9 @@ SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中, ![SSO系统设计-登录时序图](https://img.ken.io/blog/sso/sso-login-sequence.png-kbrb.png) -按照上图,用户登录后Authtoken保存在Cookie中。 domian= test. com +按照上图,用户登录后AuthToken保存在Cookie中。 domain=test.com 浏览器会将domain设置成 .test.com, -这样访问所有*.test.com的web站点,都会将Authtoken携带到服务器端。 +这样访问所有*.test.com的web站点,都会将AuthToken携带到服务器端。 然后通过SSO服务,完成对用户状态的校验/用户登录信息的获取 - 登录信息获取/登录状态校验 @@ -122,4 +122,4 @@ SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中, - 关于时序图 -时序图中并没有包含所有场景,ken.io只列举了核心/主要场景,另外对于一些不影响理解思路的消息能省就省了。 \ No newline at end of file +时序图中并没有包含所有场景,ken.io只列举了核心/主要场景,另外对于一些不影响理解思路的消息能省就省了。