用Redis构建高效的缓存与数据存储系统

Redis(Remote Dictionary Server)是一种开源的内存存储,用作分布式内存键值数据库、缓存和消息代理,并具有可选的持久性功能。由于其设计原因,Redis具有低延时读写能力,使其特别适合用作缓存的场景。Redis是最流行的NoSQL数据库之一,也是最受欢迎的数据库之一。

本文将介绍如何在LangChain中使用Redis生态系统。内容分为两个部分:安装与配置,以及具体的Redis包装器引用。

1. 安装和配置

安装Python SDK

首先,我们需要安装Redis的Python SDK:

pip install redis

使用Docker本地运行Redis

为了在本地运行Redis,可以使用Docker:

docker run --name langchain-redis -d -p 6379:6379 redis redis-server --save 60 1 --loglevel warning

停止容器

docker stop langchain-redis

重新启动容器

docker start langchain-redis

2. 连接

我们需要一个Redis连接URL字符串来连接到数据库,支持独立Redis服务器或高可用性设置与复制和Redis哨兵。

独立Redis连接URL

对于独立的Redis服务器,可以使用Python Redis模块中的from_url()方法来配置连接URL:

import redis

redis_url = "redis://:secret-pass@localhost:6379/0"
redis_client = redis.Redis.from_url(redis_url)

Redis哨兵连接URL

对于Redis哨兵设置,连接方案为"redis+sentinel":

redis_url = "redis+sentinel://:secret-pass@sentinel-host:26379/mymaster/0"

该格式限制连接字符串为一个哨兵主机,并要求Redis服务器和哨兵使用相同的密码(如果使用)。

Redis集群连接URL

目前Redis集群不支持所有需要"redis_url"参数的方法。唯一的方法是通过LangChain类接受预配置的Redis客户端,例如RedisCache。

3. 缓存

缓存包装器允许Redis用作远程、低延迟的内存缓存,用于LLM(大语言模型)的提示和响应。

标准缓存

标准缓存是Redis在生产环境中的主要应用场景,全球开源和企业用户广泛使用。

from langchain.cache import RedisCache
from langchain.globals import set_llm_cache
import redis

redis_url = "redis://localhost:6379/0"
redis_client = redis.Redis.from_url(redis_url)
set_llm_cache(RedisCache(redis_client))

语义缓存

语义缓存允许用户基于用户输入和先前缓存结果的语义相似性检索缓存的提示。它将Redis作为缓存和向量存储混合使用。

from langchain.cache import RedisSemanticCache
from langchain.globals import set_llm_cache
import redis
from tests.integration_tests.vectorstores.fake_embeddings import FakeEmbeddings

redis_url = "redis://localhost:6379/0"
set_llm_cache(RedisSemanticCache(
    embedding=FakeEmbeddings(),
    redis_url=redis_url
))

4. 向量存储

向量存储包装器将Redis变成用于语义搜索或LLM内容检索的低延迟向量数据库。

from langchain_community.vectorstores import Redis

redis_url = "redis://localhost:6379/0"
vector_store = Redis(redis_url=redis_url)

5. 检索器

Redis向量存储检索器包装器将向量存储类泛化为执行低延迟文档检索。要创建检索器,只需对基础向量存储类调用as_retriever()方法。

6. 内存

Redis可以用来持久化LLM的对话。

向量存储检索器内存

7. 聊天消息历史内存

如需有关使用Redis缓存对话消息历史的详细示例,请参见此笔记本

结束语:
如果遇到问题欢迎在评论区交流。

—END—

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值