首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >redis在Gitlab中缓存了什么?

redis在Gitlab中缓存了什么?
EN

Stack Overflow用户
提问于 2022-01-05 09:04:46
回答 1查看 178关注 0票数 1

我已经生成了一个键空间列表,以及它们的大小和ttl (715个键空间),并试图分析哪个键空间消耗了大量内存。我可以看到,键空间占用的内存总量为1.2MB,但我的Redis被填满了13 GB。那么,是什么占据了Redis容器中如此多的内存呢?

Redis版本: 6.0.9图片: bitnami/redis:6.0.9-debian-10-r0

用来生成列表的脚本:

代码语言:javascript
运行
复制
#!/bin/bash

NAMESPACE=$1
SECRET=$2
POD=$3
CONTAINER=$4

PASSWORD_REDIS=$(kubectl get secrets -n $NAMESPACE $SECRET -o jsonpath='{.data.secret'} | base64 -d )
kubectl exec -it -n $NAMESPACE $POD -c $CONTAINER -- redis-cli -a ${PASSWORD_REDIS} KEYS '*' | tail -n +2 > keylist.csv
    keylist.csv

declare -a KEYS;
arraylen=0;
i=0;
j=0;

test2(){
    arraylen=${#KEYS[@]}
    echo "kubectl exec -i -n ${NAMESPACE} ${POD} -c ${CONTAINER} -- redis-cli -h 127.0.0.1 -a ${PASSWORD_REDIS} MEMORY USAGE ${KEYS[j]}" > keys.sh
    chmod +x keys.sh
    ./keys.sh > size.txt 2> /dev/null

    echo "kubectl exec -i -n ${NAMESPACE} ${POD} -c ${CONTAINER} -- redis-cli -h 127.0.0.1 -a ${PASSWORD_REDIS} TTL ${KEYS[j]}" > ttl.sh
    chmod +x ttl.sh
    ./ttl.sh > ttl.txt 2> /dev/null

    SIZE=$(cat size.txt)
    TTL=$(cat ttl.txt)
    ((j=$j+1))
    echo "$j,${KEYS[j]},${SIZE},${TTL}" >> output.csv
    if [ $j -ge $arraylen ]; then exit
    fi
    test2
}

while IFS=') '  read -r slno line; do
  LINE=${line};
  KEYS+=([i]=$LINE)
  i=$[$i+1]
done < keylist.csv

test2

输出如下(第3列为字节大小,第4列为ms中的TTL ):

EN

回答 1

Stack Overflow用户

发布于 2022-01-06 04:28:02

关于GitLab的redis缓存中存储的内容的文档可以找到这里这里

它随着时间的推移而变化,并取决于您正在使用的GitLab版本。

还值得一提的是,GitLab已经构建了一个工具,红键空间分析器,用于分析GitLab redis实例的密钥空间。你可以用这个找到占空间最大的钥匙。(另见红雀及其下注)。这些工具是由gitlab.com工程师为与gitlab.com一起使用而构建的,但应该适用于自托管的gitlab实例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70590211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档