```
Properties
Unlike @st.cache, this returns cached items by value, not by reference. This means that you no longer have to worry about accidentally mutating the items stored in the cache. Behind the scenes, this is done by using Python's pickle() function to serialize/deserialize cached values.
Although this uses a custom hashing solution for generating cache keys (like @st.cache), it does not use hash_funcs as an escape hatch for unhashable parameters. Instead, we allow you to ignore unhashable parameters (e.g. database connections) by prefixing them with an underscore.
For example:
```python
import streamlit as st
import pandas as pd
from sqlalchemy.orm import sessionmaker
@st.experimental_memo
def get_page(_sessionmaker, page_size, page):
    """Retrieve rows from the RNA database, and cache them.
