未分類 23 9 月 2020 redis 如何做类似关系数据库的条件查询 redis 如何做类似关系数据库的条件查询 資深大佬 : chengz 0 如题 如果只用 redis,如何满足一些需要条件查询的需求? 如果 redis 只用于缓存,使用 MongoDB 持久化,大家是怎么同步数据的? 大佬有話說 (8) 資深大佬 : mitu9527 Redis 本身就是非关系型的,不论是当作缓存还是数据库,所以为什么要用关系型查询语言?不过 Redis 的 RediSQL 模块可以做到内嵌 SQLite 并实现 SQL 查询。 資深大佬 : hcx0 1. 自己解析 SQL 映射到 KV 数据,给查询条件建立映射作为索引,不能命中索引的用 SCAN 查找 資深大佬 : qwerthhusn KEYS SCAN 都可以做一些 Key 查找 資深大佬 : anthow 1.具体什么条件了?如果想用关系性数据库那种复杂条件,那么就要考虑 redis 是否真正的适合2.等同于缓存一致性? 主 資深大佬 : chengz @mitu9527 业务需要使用高速缓存,但是有少量简单的条件查询,以前用的 mysql,就必须自己维护缓存,不太方便,同时性能也可能有问题。看了下 RediSQL,如果要使用,必须自建 redis ?可以尝试下@hcx0 @qwerthhusn 条件查询的字段是可变的,不能存储在 key 中 @anthow 1.单表简单查询,2.最终一致性即可,我理解的是缓存读写,定时从 redis 同步数据到 mongodb 落地,所有条件查询都通过 mongodb 完成 資深大佬 : shakeyo 简单的条件查询用 lua 脚本直接 scan 吧这么少量的需求单独引入一个 mongodb 依赖不明智你既然也有 mysql,为啥不考虑 redis 同步到 mysql 資深大佬 : hcx0 @chengz 可以做到但没必要,不如说说是什么业务场景,MySQL 搞个好点得配置上个 SSD 代码合理差距不会超过 1ms,真的非得用这么复杂得方案吗 主 資深大佬 : chengz @shakeyo @hcx0 业务场景比较垂直,我之前表述不准确,后续数据量会比较大,mysql 平滑扩容比较麻烦,所以考虑切换 mongodb 。