Skip to content

cache has_one #2

Closed
Closed
@hooopo

Description

@hooopo

user has_one user_ask_part:

user.user_ask_part
UserAskPart Load (0.5ms) SELECT * FROM user_ask_parts WHERE (user_ask_parts.user_id = 2) LIMIT 1
=> <UserAskPart id: 676, user_id: 2>

由于has one关联不通过主键取数据,而是通过一个唯一索引(user_id),而目前的SLC缓存里只有UserAskPart/676这种形式的key,所以没办法处理has one的情况。

可以在生成缓存的时候多创建一份以UserAskPart/user_id/2为key的缓存(如果需要缓存has one的话)

两份缓存可能有点多余,但是针对memcache只能如此,或许redis可以使用UserAskPart/id/676/user_id/2这种形式的key?查询的时候模糊匹配?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions