当前位置: 首页 > 面试题库 >

存储PostgreSQL时间戳作为分数到redis排序通过redis-py设置:DataError

夏高朗
2023-03-14
问题内容

我将PostgreSQL时间戳存储到使用redis-py的redis排序集中。

时间戳记用作得分,数据用作值。

我需要按降序对集合进行排序,但是我无法将数据插入Redis中,我不知道如何转换为Redis支持的格式。这是代码:

  cursor.execute("select current_timestamp;");
  timestamp_raw=cursor.fetchone()
  redis_client.zadd("stream",{data:timestamp_raw})

错误如下

.....\AppData\Local\Programs\Python\Python38-32\lib\site-packages\redis\connection.py", line 117, in encode
raise DataError("Invalid input of type: '%s'. Convert to a "redis.exceptions.DataError: Invalid input of type: 'tuple'. Convert to a byte, string or number first.

如何去爱它?


问题答案:

在Psycopg2中,timestamptz作为日期时间和FixedOffsetTimezone的元组返回。

您需要将元组转换为浮点数,以便可以将其用作分数。



 类似资料:
  • 问题内容: 我想使用排序集来存储对象,并使用redis-server时间戳作为得分。 我知道我可以使用带ID的Redis Streams ,但是Redis Streams有局限性,包括我不能编辑对象,不能使用等级或字典排序,不能真正删除中间,并集或相交等对象。 我想自动执行此操作,并使用redis-server时间戳,以便可以使用多个客户端,而不必担心时钟同步。 这个怎么做? 问题答案: 解决方案

  • 问题内容: 我想每15分钟通过一次cron作业将数据从熊猫存储到redis中,以下是我的代码:- 我使用下面的代码每15分钟将数据带入大熊猫,然后通过cron作业将其发送到redis字典mydict2。 我在键mydict2中一次又一次得到相同的输出。基本上,我想存储整个月的用户ID,并希望在月底存储唯一的ID。 另外我正在使用set方法,假设我有大量数据,这可能是最好的方法。 有人可以在这里帮我

  • 问题内容: 我需要将一些时间序列数据存储到Redis中。我有unix时间戳,并且我需要关联一个值(时间戳<->值) 我尝试将时间戳记作为得分(以便我可以在时间戳记上进行zrange)并将值作为成员的排序集。 但是我遇到了一个问题,成员没有重复,而对于不同的时间戳,我的值可以相同。知道如何处理吗?其他数据类型更好吗? 问题答案: 解决此问题的一个简单技巧是将时间戳记和值连接起来。 而不是存储: 您可

  • redis-py 这是 Redis 目前最成熟的 Python 客户端开发包。 示例代码: >>> import redis>>> r = redis.Redis(host='localhost', port=6379, db=0)>>> r.set('foo', 'bar')   # or r['foo'] = 'bar'True>>> r.get('foo')   # or r['foo']'bar'

  • 本文向大家介绍Redis有效时间设置以及时间过期处理操作,包括了Redis有效时间设置以及时间过期处理操作的使用技巧和注意事项,需要的朋友参考一下 本文对redis的过期处理机制做个简单的概述,让大家有个基本的认识。 Redis中有个设置时间过期的功能,即对存储在redis数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的token或者一些登录信息,尤其是短信

  • 问题内容: hmset函数可以设置每个字段的值,但是我发现,如果值本身是一个复杂的结构化对象,则从hget返回的值是一个序列化的字符串,而不是原始对象 例如 i的类型是字符串,而不是python对象,除了手动解析每个字段外,还有什么方法可以解决此问题? 问题答案: 您无法在Redis中创建嵌套结构,这意味着您无法(例如)在本地Redis哈希图中存储本地Redis列表。 如果确实需要嵌套结构,则可能