mirror of
https://github.com/hwchase17/langchain.git
synced 2026-04-23 20:23:59 +00:00
30 lines
1.2 KiB
Plaintext
30 lines
1.2 KiB
Plaintext
---
|
|
sidebar_position: 1
|
|
sidebar_class_name: hidden
|
|
---
|
|
|
|
# Stores
|
|
|
|
In many different applications, having some sort of key-value storage is helpful.
|
|
In this section, we will look at a few different ways to store key-value pairs
|
|
using implementations of the `ByteStore` interface.
|
|
|
|
## Features (natively supported)
|
|
|
|
All `ByteStore`s support the following functions, which are used for modifying
|
|
**m**ultiple key-value pairs at once:
|
|
|
|
- `mget(key: Sequence[str]) -> List[Optional[bytes]]`: get the contents of multiple keys, returning `None` if the key does not exist
|
|
- `mset(key_value_pairs: Sequence[Tuple[str, bytes]]) -> None`: set the contents of multiple keys
|
|
- `mdelete(key: Sequence[str]) -> None`: delete multiple keys
|
|
- `yield_keys(prefix: Optional[str] = None) -> Iterator[str]`: yield all keys in the store, optionally filtering by a prefix
|
|
|
|
## How to pick one
|
|
|
|
`ByteStore`s are designed to be interchangeable. By default, most dependent integrations
|
|
use the `InMemoryByteStore`, which is a simple in-memory key-value store.
|
|
|
|
However, if you start having other requirements, like massive scalability or persistence,
|
|
you can swap out the `ByteStore` implementation with one of the other ones documented
|
|
in this section.
|