text: (example below).Cacheâ€‹The Cache wrapper allows for Redis to be used as a remote, low-latency, in-memory cache for LLM prompts and responses.Standard Cacheâ€‹The standard cache is the Redis bread & butter of use case in production for both open source and enterprise users globally.To import this cache:from langchain.cache import RedisCacheTo use this cache with your LLMs:import langchainimport redisredis_client = redis.Redis.from_url(...)langchain.llm_cache = RedisCache(redis_client)Semantic Cacheâ€‹Semantic caching allows users to retrieve cached prompts based on semantic similarity between the user input and previously cached results. Under the hood it blends Redis as both a cache and a vectorstore.To import this cache:from langchain.cache import RedisSemanticCacheTo use this cache with your LLMs:import langchainimport redis# use any embedding provider...from tests.integration_tests.vectorstores.fake_embeddings import FakeEmbeddingsredis_url = "redis://localhost:6379"langchain.llm_cache = RedisSemanticCache(    embedding=FakeEmbeddings(),    redis_url=redis_url)VectorStoreâ€‹The vectorstore wrapper turns Redis into a low-latency vector database for semantic search or LLM content retrieval.To import this vectorstore:from langchain.vectorstores import RedisFor a more detailed walkthrough of the Redis vectorstore wrapper, see this notebook.Retrieverâ€‹The Redis vector store retriever wrapper generalizes the vectorstore class to perform low-latency document retrieval. To create the retriever, simply call .as_retriever() on the base vectorstore class.Memoryâ€‹Redis can be used to persist LLM conversations.Vector Store Retriever Memoryâ€‹For a more detailed walkthrough of the VectorStoreRetrieverMemory wrapper, see this notebook.Chat Message History Memoryâ€‹For a detailed example of Redis to cache conversation message history,