Я использую хранилище памяти Google Cloud для сервера Redis. Моя цель - сохранить результаты запроса, поступающие из BigQuery (например, SQL), и получить результаты из Redis для последующего использования. Запрос возвращает около 1000 строк с двумя столбцами, которые я пытаюсь установить, используя client.set
.
После того, как значения вместе с ключом установлены, когда я пытаюсь получить, он возвращает мне только последнее значение ключ. Я предполагаю, что это потому, что при попытке установить значения в al oop он перезаписывает предыдущее значение ключа. Как мне решить эту проблему сохранения нескольких значений одного и того же ключа и его извлечения.
Я использовал следующий код:
import redis
import os
from google.cloud import bigquery
client = bigquery.Client()
redis_host = os.environ.get('REDISHOST', 'IP address')
redis_port = int(os.environ.get('REDISPORT', 6379))
r = redis.StrictRedis(host=redis_host, port=redis_port)
def hello_world():
if (r.get('company_name')):
print(r.get("company_name"))
else:
query = """SELECT coompany_name, news FROM `some-project.news` LIMIT 1000 """
query_job = client.query(query)
results = query_job.result()
for row in results:
r.set("company_name",row.company_name)
r.set("news", row.news)
r.expire("company_name",15)
r.expire("news",15)
print(row.company)
if __name__ == '__main__':
hello_world()
Пожалуйста, дайте мне знать, как я могу распечатать все ключи и значения, которые установлены