记录一次Redis存储数据结构的优化

针对k8s资源在Redis中的存储方式进行优化,从原本将所有service对象存入单一list,改为以namespace为单位存储service,使得查找特定service时能更快定位,减少了遍历操作。此外,利用Redis的keys命令可以便捷获取所有service数据。这种平铺数据的方式降低了key对应value的复杂度,提高了查、改、删操作的效率。
摘要由CSDN通过智能技术生成

背景:用Redis存储k8s资源信息

原状:

k8s有很多种资源例如:namespace,deployment,statefulset,service,ingress,nod,pod....

redis存储service时:将service作为key,集群中所有service对象装进list作为value存储(其他资源对象也安装这种方式存储)

弊端:

拉取所有service时方便,但是要查找特定的service就要遍历整个list,查,改,删操作效率非常低

优化后:

存储方式以service_{namespace}作为key,  以命名空间为单位存储

优点:

1.对查找某个资源对象只需要知道对象的命名空间就能很快定位到所属key,大大缩小查找范围

2.查找某种资源对象所有数据时使用Redis hkeys相关命令找出所有相关值

总结:

redis使用尽量平铺数据(按规律组合key,增加key来减少key对应value的数据复杂度),减少对key取得的数据过多的处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值