你好,很高兴回答你的问题
1. Redis 只适合精确检索,使用 keys 关键字做检索的话一定会遍历所有 key,如果不能得出精确的 key 就不能用 Redis。「数据对象可能很多,上百个」,对 Redis 来说「对象」只是字符串,你能做的也只是把对象序列化成字符串存储到 Redis 中,取出来时反序列化成对象。
2. 只要有精确的 key,检索时不会有任何性能问题。Redis 用于存储 key 的是一个字典对象,查询性能与数量级无关。
3. 用 pipeline 批量执行。
4. 数据量大部分取决于你使用的数据格式,也取决于你单个 key 的数据规模。比如使用 Hash 时,默认 entry 数量小于 512 时或 value 小于 64 Kb,使用 ziplist 作为数据结构存储,否则使用 dict 作为数据结构存储。一个 key 还可能产生一个 ttl 对象记录过期时间。很难非常准确地预计。如果不用过分精确地估计的话,建议先放入一部分数据,通过「info」关键字查询放入前后 memory 的大小来估算。
5. Redis 是近乎不可视的存储工具,如果要做数据统计、模糊检索,就不要用 Redis 。Redis 更适合用于快速存取的场景。
希望能帮到你