- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在努力提高我对 Redis 的理解,因为我有一个项目需要快速处理大量数字,但是,我遇到了一个问题,要么我的理解有误,要么不知何故我的代码没有按预期工作。
我在 MariaDB 表中有数据,我正在使用 ioredis
将每一行的数据hmset
到 Redis 数据库中,然后执行 sadd
为我需要调整的每个点创建索引。
但是,我的结果集不匹配。例如,在 MariaDB 中,我从两个字段中获得了大约 55k 条记录的结果集:
SELECT COUNT(`Email`) FROM myTable
WHERE `Qual Field A`='Yes' AND `Qual Field B`='Something else'
在 Redis 中使用相同的字段,我得到了大约 2k 的结果:
SINTER qualFieldA:'Yes' qualFieldB:'Something else'
根据我在 SO 和其他地方阅读的内容,我的印象是,执行 SINTER key1:value key2:value
大致相当于 SELECT {fields } FROM {table} WHERE field1=value AND field2=value
.
是这种情况吗,也许我的导入或悲伤调用已关闭,还是我没有正确理解 SINTER 的工作原理?
最佳答案
原则上你是对的,但是,除了导入过程中的错误之外,IMO的主要怀疑是:MariaDB进行索引整理并以某种方式对值进行规范化以供选择,而在redis中所见即所得。
因此,例如,如果您查询"is",MariaDB 中的值“Yes”、“yes”、“Yés”和“YES”都会被选中,而在 redis 中只会选择“Yes”的值。
而且不仅仅是小写 - 如果您处理 unicode,您将进入一个痛苦的世界,试图自己实现规范化和整理。
关于javascript - Redis SINTER 语句是否可与 SQL WHERE 语句相媲美?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34776979/
This thread表示 LINQ 的 OrderBy 使用快速排序。考虑到 OrderBy 返回一个 IEnumerable,我正在努力理解它的意义。 我们以下面这段代码为例。 int[] arr
快速浏览一下 stackoverflow,我还没有找到(所以希望这不是重复的问题)类似的问题(也有很长的内容)。我也相信TJ holowaychuck,他创建了很多优秀的node.js(javascr
我有这样的数据 location sales store 0 68 583 17 1 28 857 2 2 55
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!