Redis:什么是更好的:扫描/HSCAN或HVALS.当使用它们

xvw2m8pv  于 11个月前  发布在  Redis
关注(0)|答案(1)|浏览(132)

从性能的Angular 来看,什么是更好的?如何聪明地使用它们?
我在redis中有散列实体。一个散列名称有大约150 K的键值对(这是一个要求),我有一个NodeJS应用程序来处理响应等。将使用像“node-redis-scan”eachScan(),“redis”hvals()这样的库
我可以用途:
1.“redis”hvals(). REDIS COMMAND:hvals 'my hash name'并在一次调用中获得150 K值
1.带有选项的“node-redis-scan”eachScan()。REDIS COMMAND:hscan 'my hash name' 0 MATCH * COUNT 15000将使用游标直到其值为0,并过滤结果以仅在代码级别上获取值。
哪种选择更好,什么时候更好?

e3bfsja2

e3bfsja21#

恕我直言,除非我清楚地知道hashmap的大小非常小,否则我不会使用HVALS。
为什么?为什么?与为什么不使用KEYS命令的答案相同:如果有一个大的响应,它可以阻塞主线程。HSCAN返回的键和值可能比你需要的更多。但是因为它是交互式的,它可以缩放答案,不会长时间阻塞主线程。
我用Java开发了一个小库(在github中搜索InterruptedJedisLocks),我用过很多次HSCAN,没有一次是HVALS,也没有一次是HKEYS。

相关问题