自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 go之struct、iota和string

学习一下go语言基础所做笔记,主要参考《Go专家编程》和《Go程序设计语言》这两本书。

2025-02-19 17:15:34 1692

原创 基于redis开发一个时间复杂度为O(1)的优先级队列(续)

上一篇提到过,现在的获取前面排队次数的时间复杂度为O(M),M就是优先级的个数,如果优先级非常多,那么需要等待时间是比较久的。本次我将采用一个前缀和算法进行优化。这是上次提到的例子:获取普通用户的长度B的前方排队的数量=len(svip)+len(vip)+countMap[B]-countMap[A]如果存储了前缀和:获取普通用户的长度B的前方排队的数量=前缀和[B的优先级-1]+countMap[B]-countMap[A]。

2025-02-19 13:37:32 505

原创 go之Slice和Map

所谓等量扩容, 实际上并不是扩大容量, buckets数量不变, 重新做一遍类似增量扩容的搬迁动作, 把松散的键值对重新排列一次, 以使bucket的使用率更高, 进而保证更快的存取。当然这只是我瞎想的。新的键值对被插入新的bucket中。map中所有的key都有相同的类型,所有的value也有着相同的类型,但是key和value之间可以是不同的数据类型。它是一个无序的key/value对的集合,其中所有的key都是不同的,然后通过给定的key可以在常数时间复杂度内检索、更新或删除对应的value。

2025-02-12 17:16:07 1323

原创 go之Channels

一个基于无缓存Channels的发送操作将导致发送者goroutine阻塞,直到另一个goroutine在相同的Channels上执行接收操作,当发送的值通过Channels成功传输之后,两个goroutine可以继续执行后面的语句。为了表明这种意图并防止被滥用,Go语言的类型系统提供了单方向的channel类型,分别用于只发送或只接收的channel。)这种限制将在编译期检测。那么channel的缓存队列将不是满的也不是空的(图8.4),因此对该channel执行的发送或接收操作都不会发送阻塞。

2025-02-12 17:13:28 467

原创 基于redis开发一个时间复杂度为O(1)的优先级队列

优点:时间复杂度均为O(1)缺点:实现较为复杂,而且获取当前用户前面还有多少人排队也不精准。最后我在github上根据这些思路写了一个类库,因刚学go语言不久,所以代码写的比较粗糙,大佬们有时间可以帮我修改下,不胜感激。🔗github地址。

2025-02-10 09:02:26 1755 1

原创 编写predixy chart,实现helm快速搭建Redis集群(redis-cluster+predixy)

在上一篇文章中,我使用的是helm部署的redis-cluster,而predixy没有chart,导致我写了好几个yaml文件,感觉不太优雅,上周我正好学了一下helm,感觉我为什么不写一个predixy的chart,这样在结合我就可以写一个value.yaml,来实现一行命令就启动redis-cluster+predixy集群了。。

2025-02-10 09:00:21 499 1

原创 K8S快速搭建Redis集群(redis-cluster+predixy)

在本次部署过程中,我们将使用来简化 Redis 集群的部署,并利用 Kubernetes(K8s)直接部署作为代理层(后续我写了一个predxiy的chart,实现helm部署predixy了,感兴趣可以看下),以提高集群的可访问性和负载均衡能力。

2025-02-10 08:59:34 713

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除