关于redis批量获取数据pipeline

关于redis批量获取数据pipeline,第1张

Redis是建立在TCP协议上的CS架构,客户端client对redis server采取请求响应的方式交互每次交互会有网络延迟,大约30ms

假设有这样一个场景,redis中存储上千个key值,获取每个key对应field的value,那么要向redis请求上千次 hget(key, field),获取响应也是对应的次数如果能一次性将所有请求提交给server端,执行完成后批量获取响应,只需向redis请求1次,性能获大幅提升

没有用pipeline之前,基本上获取所有数据需要90多s,现在只需03s,性能提升清晰可见

实现以下场景:定时任务每隔1s执行任务函数,但是任务函数执行完成的时间比1s要长,此时启动定时任务要加上两个参数,否则会报

可允许的实例个数,如果没有设置,则默认为1,表示id相同的任务实例数

像上面的例子中,会报skipped: maximum number of running instances reached (1)的错误,意思APScheduler试图重新执行作业,但前一个仍在运行。

这个参数可以理解为任务的超时容错配置,给executor 一个超时时间,这个时间范围内要是该跑的还没跑完,就别再跑了

像上面的例子中,会报Run time of job …… next run at: ……)” was missed by的错误

可以使用命令:redis-cli

-p端口

-hIP地址

keys

""

|wc

-l

如果是集群:redis-cli

-c

-p端口

-hIP地址

keys

""

|wc

-l(多了个-c)

注意keys

命令只能列出当前的节点的key的数量

key已经存在的时间,不知道是否可以获取。

TTL key //获取key的有效时间。

或者我们将key存入hash类型中,用一个create_time字段来存储字段的创建时间。

hmset key fieldName1 value create_time "2018-11-10 00:17:10"

希望对你有所帮助。推荐一个学习redis入门学习网站,apeit-程序猿IT中关于redis由浅入深的学习。

以上就是关于关于redis批量获取数据pipeline全部的内容,包括:关于redis批量获取数据pipeline、redis那个命令可以统计key的数量、请教各位,如何获得redis中key的已经存在的时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9312454.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存