我正在使用googlecloud的memorystoreforredis服务器。我的目标是存储bigquery(类似sql)的查询结果,并从redis检索结果以供后续使用。查询返回大约1000行,其中包含两列,我尝试使用 client.set
.
一旦设置了值和键,当我尝试检索时,它只返回键的最后一个值。我猜这是因为当试图在循环中设置值时,它正在覆盖键的前一个值。如何克服存储同一个键的多个值并检索它的问题。
我使用的代码如下:
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()
请让我知道如何打印设置的所有键和值
1条答案
按热度按时间oxf4rvwz1#
我不熟悉python,但是我检查了文档,方法名是相同的。因此,您可以将以下结构应用于代码。
这是两者的redis cli版本
sets
以及lists
.套
列表