开发者社区> 问答> 正文

用redis存储mysql数据和关联的关系

最近在开发一个通过配置组合功能的项目,这些配置数据可以遇见会被频繁访问,所以想在mysql上面加一层redis把这些数量不是非常大的配置做缓存,并在增删改的时候把数据从mysql更新后再从redis中更新,但是表和表之间有关联关系。
问:
这些关系应该怎么保存?如何方便的通过条件从redis中查询到多个表的数据?

展开
收起
落地花开啦 2016-02-25 17:39:36 3936 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    1、统一表名。关系型数据库中的表名经常会用到下划线分割,用作hash键的时候显得不够简洁,比如一张表叫tm_user,转换成hash键的时候就叫user就可以了。
    2、统一主键。要求所有表中的自增主键完全一致,“完全”包括名称和数据类型,比如user这张表,主键就叫id,而不能是user_id。
    3、设计主键。还是以上面的user举例,user一般称为hash键,而这张的id称为范围键(range key),主键按照"hash:range"的形势构造,key="user:1"表示存放的是mysql中user这张表的id为1的用户行数据。假设你的Nosql需要对应mysql多库,将库名也放进hashkey中,比如"crm:user:1"这样
    4、设计value格式。这里推荐用json格式。Nosql中数据类型和关系型数据库不一样,没有那么多复杂的类型。key永远是string类型,而value的类型分两种:
    基础类型:string和number类型;
    保留字:true、false、null
    具体可以参考json的数据规范ecma-404文档。
    5、举例,假设你的user表只要两个字段,id和name,最后格式就是这样:
    "user:1"="{"id":1,"name":"理论"}"

    2019-07-17 18:47:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis集群演化的心路历程——从2.x到3.0时代 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载

相关镜像