Skip to content

Big keys are stored in Redis used for both Default and Full Page Cache #39998

Open
@dandrikop

Description

@dandrikop

Preconditions and environment

I have integrated Magento 2.4.7-p5 with Redis 7.2.9. My Magento installation is multi-view implementation. I'm using Redis for Default and Full Page Cache. I checked the biggest keys stored in Redis for the Default Cache by executing the below command on Database 2 of Redis which I use for the Default Cache:

$ redis-cli -p 6379 -n 2 --bigkeys

# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type. You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).

[00.00%] Biggest hash found so far '"zc:k:c48_STRUCTURE_LAYOUT_FRONTEND_STORE6_149F7D289E4A65B436366F61CE09E870F0"' with 4 fields
[00.01%] Biggest set found so far '"zc:ti:c48_CAT_P_10355"' with 5 members
[00.02%] Biggest set found so far '"zc:ti:c48_CATALOG_PRODUCT_VIEW_ID_5179"' with 8 members
[00.04%] Biggest set found so far '"zc:ti:c48_CAT_P_11902"' with 24 members
[00.07%] Biggest set found so far '"zc:ti:c48_CAT_P_6288"' with 50 members
[00.39%] Biggest set found so far '"zc:ti:c48_CAT_P_4493"' with 53 members
[01.70%] Biggest set found so far '"zc:ti:c48_CAT_P_3916"' with 94 members
[02.85%] Biggest set found so far '"zc:ti:c48_CAT_P_4081"' with 184 members
[03.02%] Biggest set found so far '"zc:ti:c48_CATALOG_CATEGORY_VIEW_DISPLAYMODE_PRODUCTS"' with 917 members
[19.44%] Biggest set found so far '"zc:ti:c48_MAGE"' with 216602 members

-------- summary -------

Sampled 243499 keys in the keyspace!
Total key length in bytes is 19627260 (avg len 80.61)

Biggest hash found '"zc:k:c48_STRUCTURE_LAYOUT_FRONTEND_STORE6_149F7D289E4A65B436366F61CE09E870F0"' has 4 fields
Biggest set found '"zc:ti:c48_MAGE"' has 216602 members

0 lists with 0 items (00.00% of keys, avg size 0.00)
215039 hashs with 860156 fields (88.31% of keys, avg size 4.00)
0 strings with 0 bytes (00.00% of keys, avg size 0.00)
0 streams with 0 entries (00.00% of keys, avg size 0.00)
28460 sets with 842226 members (11.69% of keys, avg size 29.59)
0 zsets with 0 members (00.00% of keys, avg size 0.00)

Afterwards, I ran the same command for the Database 3 of Redis which I use for the Full Page Cache of Magento:

$ redis-cli -p 6379 -n 3 --bigkeys

# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type. You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).

[00.00%] Biggest hash found so far '"zc:k:c48_23DE6CD17D9A532F2F6789DFAF53FC5F5747A71E"' with 4 fields
[00.01%] Biggest set found so far '"zc:ti:c48_CAT_P_10355"' with 43 members
[00.05%] Biggest set found so far '"zc:ti:c48_CAT_P_11902"' with 153 members
[00.08%] Biggest set found so far '"zc:ti:c48_CAT_P_5460"' with 938 members
[00.09%] Biggest set found so far '"zc:ti:c48_CAT_P_6288"' with 2438 members
[00.31%] Biggest set found so far '"zc:ti:c48_FPC"' with 209478 members

-------- summary -------

Sampled 223525 keys in the keyspace!
Total key length in bytes is 10556492 (avg len 47.23)

Biggest hash found '"zc:k:c48_23DE6CD17D9A532F2F6789DFAF53FC5F5747A71E"' has 4 fields
Biggest set found '"zc:ti:c48_FPC"' has 209478 members

0 lists with 0 items (00.00% of keys, avg size 0.00)
209478 hashs with 837912 fields (93.72% of keys, avg size 4.00)
0 strings with 0 bytes (00.00% of keys, avg size 0.00)
0 streams with 0 entries (00.00% of keys, avg size 0.00)
14047 sets with 12478679 members (06.28% of keys, avg size 888.35)
0 zsets with 0 members (00.00% of keys, avg size 0.00)

Steps to reproduce

At the command line execute the Redis commands mentioned above on the Redis databases used for caching.

Expected result

The keys named as "MAGE" for the Default Cache and "FPC" for the Full Page Cache should not be stored in Redis.

Actual result

It is obvious that the keys named as "MAGE" for the Default Cache and "FPC" for the Full Page Cache are huge.

Additional information

No response

Release note

No response

Triage and priority

  • Severity: S0 - Affects critical data or functionality and leaves users without workaround.
  • Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.
  • Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.
  • Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.
  • Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue: ready for confirmationReported on 2.4.7-p5Indicates original Magento version for the Issue report.Triage: Dev.ExperienceIssue related to Developer Experience and needs help with Triage to Confirm or Reject it

    Type

    No type

    Projects

    Status

    Ready for Confirmation

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions