×

scala

Scala - Redis hgetAll 优化 by hscan

无理 无理 发表于2024-06-01 浏览5101 评论0
一.引言 Redis 实际使用过程中,由于 redis hgetAll 数据量过于大,导致线上 redis 进程堵塞,读取缓慢影响任务执行效率,改用 hscan 优化。 二.Case分析 1.hgetAll 为什么慢 hgetAll 获取指定 key 的全部 hash 结果,时间复杂度 O(n) ,hash 的 key 越多,当 kv 值不多时 hgetAll 非常好用,但是使用 hgetAll 获取的数据量越大,获取的性能越低。与之类似的是 hdel,随着 key 的增加,获取的时

scala

Scala/Java - Redis 连接检测与重试

百度用户75525 百度用户75525 发表于2024-05-25 浏览5765 评论0
一.引言  项目实现中需要连接 redis,为了防止因网络抖动或其他原因造成的客户端连接失败,一般需要增加重试机制判断 client 是否连接成功,之前写了一版重连代码发现有 bug,借此机会看下代码 bug 以及如何更好的重连 redis。 二.错误代码 def getRedisClient(host: String, port: Int, timeout: Int = 0): Jedis = { var redisClient: Jedis = null var

scala

Scala - 使用转义字符 \\ 与 | 分割字符(scala中多行字符用什么来表示)

Serien01 Serien01 发表于2024-05-22 浏览9564 评论0
一.引言 scala 使用 '|' 作为分割字符时,报红线并提示 scala empty branch in alternation,使用 \\ 转义字符修饰后实现 '|' 的正常 String Split。 二.使用分析 1.错误用法 val word = "112345|2" A.错误1: 转义字符用反 println(word.split("/|").mkString(",")) 1,1,2,3,4,5,|,2 翻译字符为 '\' ,使用 '/' 后不会正确划分字符串