redis
1024-iot-SaltIce
熟悉Go与Java语言,目前主要使用golang,喜欢对微服务系统开发与设计,以及云原生的学习,和中间件的开发。
展开
-
使用 redis scan 踩了大坑记录
业务中有一个需求需要将数据先缓存到redis中以应对高并发的问题,然后后台定时的去将这些数据落盘mysql,叮叮当当的开发自测完成,经过测试大佬对业务功能测试和压测通过后,就马不停蹄的上线了,然而,刚上线不久,就发现服务cpu和内存占用持续升高,但没有达到100%,一只保持较高的水平。经过对服务pprof采集分析,发现居然是这个需求代码中的定时任务占用了大量的cpu占用。原创 2022-10-29 17:17:41 · 385 阅读 · 1 评论 -
Redis各种数据类型最多可以存多少数据
redis官方文档Strings类型:一个String类型的value最大可以存储512MLists类型:list的元素个数最多为2^32-1个,也就是4294967295个。Sets类型:元素个数最多为2^32-1个,也就是4294967295个。Hashes类型:键值对个数最多为2^32-1个,也就是4294967295个。Sorted sets类型:跟Sets类型相似。分享方案Redis百亿级Key存储方案...原创 2021-08-27 17:01:39 · 12322 阅读 · 0 评论 -
Golang:MQTT服务集群共享主题设计【通配符实现篇】
接上篇的初步思路,可以通过这样的方式获取所有的需要匹配的订阅主题接下来实现一波// 获取需要匹配的主题,简单方式,没有考虑性能了,怎么简单怎么来// 下面可优化的地方太多了,性能不是很好func matchTopicS(topic string) []string { tp := strings.Split(topic, "/") ret := list.New() ret.PushBack(tp[0]) // 直接限制订阅主题第一个不能是通配符,并且不能是单纯一个/,所以该方法就.原创 2021-04-08 00:09:04 · 1273 阅读 · 1 评论 -
Golang:MQTT服务集群共享主题设计
前言:本次设计的支持集群的共享订阅的思路,还存在缺陷,无法支持通配符订阅,正在努力实现中,敬请期待,或者有好的点子,欢迎分享哦,谢谢各位。具体实现用在了该项目中集群共享订阅单机共享订阅是非常容易实现的,代码改动也比较小,但是我们今天的角色不是单机的共享订阅,而是集群的我们采用一个简单的方式来实现部分功能,使用redis的set+hash具体结果如下图:订阅主题订阅主题时,需要一条lua脚本向redis中操作两个key,分别操作数据set 的key中往topic key中添加该shar原创 2021-04-03 22:14:39 · 2296 阅读 · 2 评论