Skip to content

Commit b9f7f11

Browse files
committed
集群版 redis lua 脚本限制
1 parent 992e658 commit b9f7f11

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

codingstyle/codingstyle.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,8 @@ Redis相关:
337337

338338
- Redis key 命名尽量能够体现出含义,但是也要注意过长的 key 影响内存占用,尽量保持 key 长度精简,在代码里注释说明
339339
- 使用 redis 之前最好先根据 qps 和内存占用做一个简单预估,防止线上出问题
340-
- 使用集群 redis 应该注意防止大 key 产生,注意有些命令的限制(比如一些云 redis 产品限制 lua 脚本和非 watch事务 执行)
340+
- 使用集群 redis 应该注意防止大 key 产生,可能会严重影响 redis 性能
341+
- 注意一些分布式数据库限制(阅读官方文档):比如腾讯云 redis 集群版 lua 脚本需要所有 key 都在一个节点;不支持非 watch 事务等。
341342
- 禁止线上 redis 服务器使用一些危险命令,比如 keys ,使用 scan 替代
342343
- 注意连接池是否会打满,一般是用全局单例的连接池,防止频繁建立 tcp 连接开销。注意不要一直创建连接池把连接数打满
343344

debug/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ Debug 调试技巧
6767
- 深浅拷贝问题。不同语言可能又不同的拷贝模型,确定你的参数是深拷贝还是浅拷贝,能否修改,修改了之后是否有副作用。
6868
- 数组越界错误。注意涉及到数组的时候使用的下标是否会越界。越界了 python 抛出异常,go 直接 panic 掉。
6969
- 数值截断错误。注意强制类型转换是否会发生截断,损失精度,结果是否符合期望。
70-
- 参数校验。一般来自用户的输入都要假设参数可能是错误甚至是恶意参数,后台必须要进行类型、大小、范围、长度、边界等检查
70+
- 参数校验。一般来自用户的输入都要假设参数可能是错误甚至是恶意参数,后台必须要进行类型、大小、范围、长度、边界、空值等进行检查
7171
- 参数单位是否匹配。比如 go 需要时间的参数 time.Duration 有没有乘以对应的 time.Second/MilliSecond 等。
7272
- 路径错误。编写一些脚本需要处理文件的时候,推荐使用绝对路径比较不容易出错。
7373
- 空值错误。比如直接赋值一个 go 里边的 map 会 panic,你需要先给 map make 一个值,很多 go 新手会重复犯这个错(go slice 却可以直接声明之后 append)

0 commit comments

Comments
 (0)