需求:之前写的脚本获取redis 最大的top-n的bigkeys,没有区分数据类型,如果要针对每个数据类型的前top-n的bigkeys获取呢?

db_ip=5.5.5.101
db_port=
password=abc123
cursor=
cnt=
new_cursor= function get_key()
{
redis-cli -h $db_ip -p $db_port -a $password scan $ count $cnt > scan_tmp_result
new_cursor=`sed -n '1p' scan_tmp_result`
sed -n '2,$p' scan_tmp_result > scan_result
} function get_keyinfo()
{
cat $ |while read line
do
key_size=`redis-cli -h $db_ip -p $db_port -a $password memory usage $line`
key_type=`redis-cli -h $db_ip -p $db_port -a $password type $line`
echo $line $key_type $key_size >> "$key_type.txt"
done
} get_key $cursor
get_keyinfo scan_result while [ $cursor -ne $new_cursor ]
do
get_key $new_cursor
get_keyinfo scan_result
done all_types="string list set hash zset"
for type in $all_types
do
echo "-----------top $1 $type data type-----------"
if [[ -f "$type.txt" ]];then
cat "$type.txt" | sort -nrk3 | sed -n "1,$1p"
else
echo "The instance does not have $type data type"
fi
done rm -rf scan_tmp_result
rm -rf scan_result
rm -rf string.txt
rm -rf set.txt

测试结果:

[redis@lxd-vm1 ~]$ sh get_type_top.sh
-----------top string data type-----------
test2 string
test string
c_9 string
c_99 string
c_999 string
-----------top list data type-----------
c list
b list
-----------top set data type-----------
hello set
world set
-----------top hash data type-----------
The instance does not have hash data type
-----------top zset data type-----------
The instance does not have zset data type

redis中获取每个数据类型top-n的bigkeys信息的更多相关文章

  1. 面试官:Redis中哈希数据类型的内部实现方式是什么?

    面试官:Redis中基本的数据类型有哪些? 我:Redis的基本数据类型有:字符串(string).哈希(hash).列表(list).集合(set).有序集合(zset). 面试官:哈希数据类型的内 ...

  2. Redis中的Stream数据类型作为消息队列的尝试

    Redis的List数据类型作为消息队列,已经比较合适了,但存在一些不足,比如只能独立消费,订阅发布又无法支持数据的持久化,相对前两者,Redis Stream作为消息队列的使用更为有优势.   相信 ...

  3. Redis中几种数据类型的基本操作指令

    Redis基本指令 单线程+多路IO复用技术 1. Key 指令 作用 keys * 查看当前库所有键 exists <key> 判断此键是否存在 type <key> 查看键 ...

  4. Redis 中的高级数据类型

    5个基础数据类型 高级功能 ① HyperLogLog (参考) 供不精确的去重计数功能,比较适合用来做大规模数据的去重统计,例如统计 UV > PFADD visitors alice bob ...

  5. jmeter操作—从redis中获取token

    嗨,大家好,我是叶子 背景:某APP项目中需要进行各接口的性能测试,比如:测试商品的搜索功能.店铺查询功能等接口,测试时需要保持登录状态,所以需要获取到登录账号的token,方便之后的接口测试. 准备 ...

  6. 说一下redis中5种数据类型的底层数据结构

      前言: 阅读 redis设计与实现 一书的记录.未完待续... redis我们都知道有5种数据类型,分别是string,list,hash,set,zset,那么你知道它们的底层数据结构实现吗? ...

  7. redis中获取没有设置ttl过期时间的key

    需求:redis作为一个内存型的数据库,我们需要对过期key保持关注,从info keyspace中可以看出有多少key没有设置过期时间,那么到底是哪些呢? 说明:关于redis ttl 的返回值,请 ...

  8. redis中获取不同自增数的方法

    项目需求,需要获取不同的自增数,然后与其他信息拼接成一个字符串作为编号,这边有一种基于数据库的获取自增数的方法,这边略过,还有一种基于redis的实现. 此方法可以用到redis的自增函数 publi ...

  9. 简析Geoserver中获取图层列表以及各图层描述信息的三种方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 实际项目中需要获取到Geoserver中的图层组织以及各图层 ...

随机推荐

  1. HTML5与HTML4的区别-----文档结构

    HTML5在结构和语法上做了大量的简化.当然,也提供了语义化的标签 结构上区别: 1.简化了文档声明语句     HTML5仅规定了一种:       <!DOCTYPE html> 2. ...

  2. Go语言实现:【剑指offer】孩子们的游戏

    该题目来源于牛客网<剑指offer>专题. 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的 ...

  3. 关于在osgearth 中 出现 arial.ttf : file not handled 的问题

    这是由于配置osg时 freetype 插件没有配置到位. 我个人的解决方法 打开CMAKE,点击advance,不勾选OSG_TEXT_USE_FONTCONFIG. 同时将freetype路径设置 ...

  4. 数据算法 --hadoop/spark数据处理技巧 --(9.基于内容的电影推荐 10. 使用马尔科夫模型的智能邮件营销)

    九.基于内容的电影推荐 在基于内容的推荐系统中,我们得到的关于内容的信息越多,算法就会越复杂(设计的变量更多),不过推荐也会更准确,更合理. 本次基于评分,提供一个3阶段的MR解决方案来实现电影推荐. ...

  5. Kubernetes最新版核心命令

    #查看所有namespace的pods运行情况 kubectl get pods --all-namespaces #查看具体pods,记得后边跟namespace名字哦 kubectl get po ...

  6. Django 配置文件 settings.py

    1. dubug配置 DEBUG=False 2. 数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', &qu ...

  7. javascript30--day03--Css Variables

     相关视频链接:https://www.bilibili.com/video/av8481988/?p=5 相关github地址:https://github.com/soyaine/JavaScri ...

  8. pikachu-反序列化漏洞

    1.序列化的概念(摘自pikachu平台的介绍) (1)序列化serialize() 序列化说通俗点就是把一个对象变成可以传输的字符串,比如下面是一个对象:   class S{ public $te ...

  9. [Wpf学习] 2.代码导入Xaml

    废话不说,直接上代码 using System.ComponentModel; using System.Runtime.CompilerServices; using System.Windows; ...

  10. .net core 3 web api jwt 一直 401

    最近在给客户开发 Azure DevOps Exension, 该扩展中某个功能需要调用使用 .NET Core 3 写的 Web Api. 在拜读了 Authenticating requests ...