python使用redis存储时序数据

python 复制代码
import redis

def ts_demo():
    """时序数据存储RedisTimeSeries测试"""
    # 连接到Redis
    r = redis.Redis(host='localhost', password="xxxx", port=63790, db=0)
    r1 = r.ts()
    # print(r1.get("ts_key"))
    # print(r.exists('ts_key'))
    # # 清空键值
    # r.delete("ts_key1111")
    # print(r1.range("ts_key1111", '-', '+'))
    # 设置过期时间为10s,即timestamp的时间相比当前时间相差10s以上的数据就不存在于这个key中。
    r1.create(key="ts_key", retention_msecs=10000, duplicate_policy="last")
    r1.add(key="ts_key1111", timestamp='*', value=1) # *表示取当前时间
    r1.add(key="ts_key", timestamp='*', value=2)
    r1.add(key="ts_key", timestamp='*', value=3)
    r1.add(key="ts_key", timestamp='*', value=4)
    time.sleep(5)
    r1.add(key="ts_key", timestamp='*', value=5)
    r1.add(key="ts_key", timestamp='*', value=6)
    r1.add(key="ts_key", timestamp='*', value=7)
    r1.add(key="ts_key", timestamp='*', value=8)
    r1.add(key="ts_key", timestamp='*', value=9)
    r1.add(key="ts_key", timestamp='*', value=10)
    r1.add(key="ts_key", timestamp='*', value=11)

    print(r1.get("ts_key")) # 获取该key下的时间最大的数据
    print(r1.range("ts_key", '-', '+')) # 获取该key下的所有数据
    time.sleep(5)
    print(r1.range("ts_key", '-', '+')) 
    
if __name__ == '__main__':
    ts_demo()

存在的问题

可能会报错redis没有RedisTimeSeries扩展模块,详细信息可以参考redis官网https://redis.io/docs/latest/develop/data-types/timeseries/

也可以参考如下:
https://blog.csdn.net/LinkSLA/article/details/123040789

查看redis中是否有时间序列数据库模块可以参考如下代码:

python 复制代码
# 连接到Redis
r = redis.StrictRedis(host='localhost', password="xxxx", port=63790, db=0)

# 获取Redis的信息
info = r.info()
print(info)
# 检查是否加载了时间序列数据库模块
if 'redis_modules' in info and 'name' in info['redis_modules']:
    for module in info['redis_modules']:
        if module['name'] == 'timeseries':
            print("Redis Time Series Database module is enabled.")
else:
    print("Redis Time Series Database module is not enabled.")
相关推荐
予枫的编程笔记11 分钟前
【Docker进阶篇】Docker Compose实战:Spring Boot与Redis服务名通信全解析
spring boot·redis·docker·docker compose·微服务部署·容器服务发现·容器通信
子午15 分钟前
【海洋生物识别系统】Python+深度学习+人工智能+算法模型+图像识别+tensoflow+2026计算机毕设项目
人工智能·python·深度学习
七夜zippoe16 分钟前
机器学习数学基础:线性代数与概率论深度解析
python·线性代数·机器学习·概率论·优化理论
有味道的男人22 分钟前
除了Python,还有哪些语言可以调用1688商品详情API?
开发语言·python
Sheffield24 分钟前
为什么Django这么慢,却还是Python后端第一梯队呢?
linux·python·django
Go_Zezhou30 分钟前
render网站保存历史记录错误解决
开发语言·git·python·html
~央千澈~44 分钟前
抖音弹幕游戏开发之第6集:解析JSON数据·优雅草云桧·卓伊凡
开发语言·python·php
Re.不晚1 小时前
Redis——缓存【缓存穿透、缓存雪崩、缓存击穿】
数据库·redis·缓存
郝学胜-神的一滴1 小时前
深入解析Python中dict与set的实现原理
开发语言·python
ELI_He9991 小时前
ReActor Face NSFW: HTTP Error 502: Bad Gateway
python·comfy