- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经理解了 REDIS SCAN 中 COUNT 的含义。但是, REDIS COUNT 的理想值是多少?
最佳答案
默认值为 10
.这意味着该命令将带回 或多或少 10 个键 , 如果键在散列槽中稀疏填充,或者被 MATCH
过滤掉,则可能会更少图案。如果某些键共享一个哈希槽,可能会更多。无论如何,执行的工作与 COUNT
成正比。范围。
Redis 是单线程的。原因之一SCAN
引入的目的是允许通过一次走几步,在不长时间阻塞服务器的情况下遍历所有 key 。
这正是决定什么是好的数字的标准。您愿意通过运行 SCAN
来阻塞 Redis 服务器多长时间命令。越高COUNT
,块越长。
让我们使用 Lua script感受一下 COUNT
影响。在您的环境中使用它以根据您的服务器资源获取结果。
Lua 脚本:
local t0 = redis.call('TIME')
local res = redis.call('SCAN', ARGV[1], 'COUNT', ARGV[2])
local t1 = redis.call('TIME')
local micros = (t1[1]-t0[1])*1000000 + t1[2]-t0[2]
table.insert(res,'Time taken: '..micros..' microseconds')
table.insert(res,'T0: '..t0[1]..string.format('%06d', t0[2]))
table.insert(res,'T1: '..t1[1]..string.format('%06d', t1[2]))
return res
TIME
command .该命令返回:
COUNT TIME IN MICROSECONDS
10 37
100 257
1000 1685
10000 14438
> EVAL "local t0 = redis.call('TIME') \n local res = redis.call('SCAN', ARGV[1], 'COUNT', ARGV[2]) \n local t1 = redis.call('TIME') \n local micros = (t1[1]-t0[1])*1000000 + t1[2]-t0[2] \n table.insert(res,'Time taken: '..micros..' microseconds') \n table.insert(res,'T0: '..t0[1]..string.format('%06d', t0[2])) \n table.insert(res,'T1: '..t1[1]..string.format('%06d', t1[2])) \n return res" 0 0 5
1) "851968"
2) 1) "key:560785"
2) "key:114611"
3) "key:970983"
4) "key:626494"
5) "key:23865"
3) "Time taken: 36 microseconds"
4) "T0: 1580816056349600"
5) "T1: 1580816056349636"
关于redis - REDIS 中的 SCAN/HSCAN 命令是否有任何推荐的 COUNT 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60055548/
假设我有以下哈希值: item:1 - field "a" item:2 - field "b" item:3 - field "a" 和一个名为“items”的集合,它存储上述哈希的键: 项目: i
我的redis版本:3.0.2 哈希数据如下所示。 键名:测试 内容(值): 1) "xx1" 2) "1" 3) "xx2" 4) "2" 5) "xx3" 6) "3" 7)“xx4” 8) "4
这是我的哈希集 HSET MySet 111222333 Tom HSET MySet 444555666 Julia HSET MySet 777888999 Paul 您可以将 set 字段视为电
我尝试使用 ioredis,但 HSCAN 仅支持单一匹配模式。 从redis中过滤多种模式的最佳方式是什么 var stream = redis.hscanStream('myhash', {
我想在我的作业中使用 Redis 的 HSCAN 命令,但我不知道它是如何工作的。此命令的 Redis 官方页面 ( http://redis.io/commands/hscan ) 给了我空白页。
我正在使用redis(使用Java Redis),并且我想使用包含大量键和每个键中的一些数据(二进制存储)的哈希我想通过 map 的键进行迭代,同时不阻塞服务器;因为有很多进程访问该服务器。 因此,我
我正在使用带有 spring-data-redis:jar:2.0.9 的 spring boot(无关),它使用 lettuce 连接到我的 REDIS。我正在使用包含大约 100 个键的哈希结构。
我已经理解了 REDIS SCAN 中 COUNT 的含义。但是, REDIS COUNT 的理想值是多少? 最佳答案 默认值为 10 .这意味着该命令将带回 或多或少 10 个键 , 如果键在散列槽
我正在尝试在 Redis 中运行 HSCAN 命令以仅匹配通过 C# 需要的哈希字段 代码是这样的 var options = new ConfigurationOptions { EndPoin
我是一名优秀的程序员,十分优秀!