如何在redis中存储ndarray

在Redis中存储NumPy数组(ndarray)通常需要将数组转换为二进制格式,然后将其存储为字符串。以下是使用Python和Redis-py库的一个简单示例:

首先,确保你已经安装了Redis-py库:

pip install redis

然后,你可以使用以下代码将NumPy数组存储到Redis中:

import redis
import numpy as np
import pickle

# 连接到本地Redis服务器,端口默认是6379
redis_client = redis.StrictRedis(host='localhost', port=6379, db=0)

# 创建一个示例的NumPy数组
arr = np.array([[1, 2, 3], [4, 5, 6]])

# 将NumPy数组转换为二进制字符串
arr_binary = pickle.dumps(arr)

# 存储二进制字符串到Redis
redis_client.set('numpy_array_key', arr_binary)

# 从Redis中检索数据并转换回NumPy数组
stored_data = redis_client.get('numpy_array_key')
if stored_data:
    retrieved_arr = pickle.loads(stored_data)
    print("Retrieved NumPy Array:")
    print(retrieved_arr)
else:
    print("Key not found in Redis.")

在这个例子中,pickle模块被用来将NumPy数组转换为二进制字符串,然后使用Redis-py库的set方法将其存储在Redis中。在检索时,使用get方法获取二进制字符串,并使用pickle.loads将其转换回NumPy数组。