Discussion on best practices for advanced caching - please join

That’s where the problem lies. The SESSION_ID changes each reload, which changes the name, which adds new keys when the cache is used again.

Start app: cache size = 256 KB
Preload Cache: cache size = 671 KB

In [12]: sorted(list(cache))
Out[12]:
[('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.0, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.1, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.2, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.3, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.4, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.5, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.6, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.7, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.8, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.9, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 1.0, None)]

Refresh browser, then Preload Cache again: cache size = 1.1 MB

In [13]: sorted(list(cache))
Out[13]:
[('plot2fdede6d-5f6b-4235-89a7-98109dfde417', 0.0, None),
 ('plot2fdede6d-5f6b-4235-89a7-98109dfde417', 0.1, None),
 ('plot2fdede6d-5f6b-4235-89a7-98109dfde417', 0.2, None),
 ('plot2fdede6d-5f6b-4235-89a7-98109dfde417', 0.3, None),
 ('plot2fdede6d-5f6b-4235-89a7-98109dfde417', 0.4, None),
 ('plot2fdede6d-5f6b-4235-89a7-98109dfde417', 0.5, None),
 ('plot2fdede6d-5f6b-4235-89a7-98109dfde417', 0.6, None),
 ('plot2fdede6d-5f6b-4235-89a7-98109dfde417', 0.7, None),
 ('plot2fdede6d-5f6b-4235-89a7-98109dfde417', 0.8, None),
 ('plot2fdede6d-5f6b-4235-89a7-98109dfde417', 0.9, None),
 ('plot2fdede6d-5f6b-4235-89a7-98109dfde417', 1.0, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.0, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.1, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.2, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.3, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.4, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.5, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.6, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.7, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.8, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 0.9, None),
 ('ploteba67a99-b97f-4fb9-af88-5e7a671e06bd', 1.0, None)]

I know your example is just a proof of concept, but I’m interested in this issue because of the following:

  1. cache management - how to handle multiple users and single user with multiple instances?
  2. app restart and browser refresh/restart management - what happens to the state of the app and data?
3 Likes