python 脚本 如何遍历es数据 存入redis
时间: 2024-09-20 11:11:15 浏览: 88
在Python中,如果你想要从Elasticsearch(ES)中读取数据并将其存储到Redis,可以按照以下步骤操作:
首先,你需要安装必要的库,如`elasticsearch`用于连接ES,`redis`用于连接Redis。假设已经安装了这两个库:
1. **连接Elasticsearch**:
```python
from elasticsearch import Elasticsearch
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
search_result = es.search(index='your_index', body={...}) # 查询ES的数据
scroll_id = search_result['scroll_id']
```
2. **设置Redis连接**:
```python
import redis
r = redis.Redis(host='localhost', port=6379, db=0) # 或者根据你的配置连接Redis
```
3. **遍历ES数据并存入Redis**:
```python
while True:
hits = es.scroll(scroll_id=scroll_id, size=10) # 每次滚动10条数据
if not hits:
break
for hit in hits['hits']['hits']:
key = f"{hit['_id']}_{hit['_type']}" # 创建键名,可以根据需要调整格式
data = hit['_source'] # 获取文档内容
r.set(key, data)
```
别忘了关闭scroll:
```python
es.clear_scroll(body={'scroll_id': [scroll_id]})
```
4. **结束循环**:
当所有的搜索结果都被处理完毕,退出循环。
阅读全文