java基础知识总结二

基础知识总结一回顾
- – Map之一个Key存多个Value的MultiValueMap(一个键多个值)
- – java Stream的Collectors.groupingBy分组后的排序问题
- – mysql的group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])使用
- – 大数据报表查询-文章传送们
- – Spring异步方法注解 @Async,@Async标记的方法,可返回AsyncResult结果
- – RabbitMQ中的basicNack、basicReject都是拒绝一条消息,有啥区别?
- – Maven的optional的作用
- – Maven的scope属性
- – left关联的on后面跟条件与where跟条件的区别
- – INSERT-ON-DUPLICATE-KEY-UPDATE有可能锁表慎用
- – ThreadLocal可能引起的内存泄露的一些知识
- – 怎么验数据一致性
- – maven指定setting.xml配置文件
- – mvn设置打特定的包
- – nginx使用reload配置无效(缓存大小)
- – java8两个List集合取交集、并集、差集、去重并集

java基础知识总结二

  1. Redis 批量删除Redis的key 正则匹配删除
  2. maven的pom配置详解
  3. redis大key排查
  4. eureka的外网注册,访问

  1. [Redis 批量删除Redis的key 正则匹配删除]
  1. 退出redis
  2. 匹配CCPAI:开头的所有key*删除
    • redis-cli -h host -p 端口号 -n db -a 密码 --scan --pattern ‘CCPAI:*’ | xargs -r -t redis-cli -h host -p 端口号 -n db -a 密码 del
    • redis-cli -h host -p 端口号 -n db -a 密码 keys ‘CCPAI:*’ | xargs -r -t redis-cli -h host -p 端口号 -n db -a 密码 del
      ps:密码没有请忽略
      - redis-cli没有请安装redis客户端
      - -hredis的服务器地址
      - -predis的端口
      - -n->redis的db
      - -a->redis的密码
      - keys\ --scan --pattern为要匹配的值
      - -r -t用于展示删除的详情信息,删一条展示一条
  3. redis会返回删除条数
  4. 统计个数:
    redis中名称含有OMP_OFFLINE的key的个数;
    redis-cli keys “OMP_OFFLINE”|wc -l
  1. [maven的pom配置详解]
    超详细连接

  2. redis大key排查

    1. 客户端直接查询

    redis-cli -h r-***************.redis.rds.aliyuncs.com -a XXX --bigkeys -i 0.1
    注:
    -h指定Redis的连接地址。
    -a指定Redis的认证密码。
    –bigkeys查找大Key。
    –hotkeys用来查询热点Key。
    –每扫描100个key休息0.1秒

    1. 通过redis-rdb-tools工具进行redis的rdb内存大key分析
      • 环境依赖
        centos7.x,python3.8.0,pip

      • 安装pip:(还可以直接下载python工具直接进行安装)
        下载:wget https://bootstrap.pypa.io/get-pip.py
        安装:python get-pip.py
        下载:wget https://github.com/sripathikrishnan/redis-rdb-tools/archive/master.zip

      • 下载安装redis-rdb-tools工具
        解压:unzip master.zip
        进入解压目录:cd redis-rdb-tools
        安装:python setup.py install
        或者直接使用pip安装:pip install rdbtools

      • 查询redis配置
        确保redis的配置文件(redis.conf)开启rdb备份
        rdbcompression yes
        dbfilename dump.rdb
        找到备份文件
        /usr/local/java/redis-4.0.10/dump.rdb
        阿里云redis服务器的dump.rdb在【备份与恢复】的备份里面

      • 利用rdb-tools进行分析
        查看分析结果:rdb -c memory -l 5 dump.rdb
        -l:使用该操作指定占用空间最大的key个数
        eg:rdb -c memory -l 5 dump.rdb:显示占空间最大的前5个key
        分析结果导出到文件
        rdb -c memory dump.rdb > result.csv

      • 分析结果插件安装

        WARNING: python-lzf package NOT detected. Parsing dump file will be very slow unless you install it. To install, run the following command:pip install python-lzf

        • 意思说的是python-lzf这个包没有安装,会导致分析的时候非常慢,你可以运行pip install python-lzf命令进行安装python-lzf
        • 安装python-lzf如果提示失败,看看是否需要依赖( error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: https://visualstudio.microsoft.com/downloads/)
        • 下载安装->链接:https://pan.baidu.com/s/15mNBy2i6lIX4MiuZkolk4Q 提取码:tyvl
        • 安装即可 pip install python-lzf
      • 分析结果示例

        D:\Program Files\redis-rdb-tools-master>rdb -c memory -l 5 1.rdb
        database,type,key,size_in_bytes,encoding,num_elements,len_largest_element,expiry
        8,list,uv_task_touch_cookieday_statis_list:,1628249436,quicklist,64636680,51,
        8,list,uv_cookienum_user_task_read_statis_list,185726,quicklist,5840,32,
        8,list,user_task_read_statis_list,200722,quicklist,6867,27,
        8,hash,touch_screen_num_map,2839972,hashtable,23525,70,
        8,list,user_task_touch_cookienum_statis_list:,1017769030,quicklist,41566987,25,


        参数说明:
        database :key在redis的db
        type :key类型
        key :key值
        size_in_bytes :key的内存大小(byte)
        encoding :value的存储编码形式
        num_elements :key中的value的个数
        len_largest_element :key中的value的长度
        expiry :key过期时间

      • rdb分析使用说明

        #rdb.exe -help
        Usage: rdb [options] /path/to/dump.rdb
        Example : rdb --command json -k “user.*” /var/redis/6379/dump.rdb

        Options:

        -h, --help 显示帮助信息
        -c FILE, --command=FILE 要执行的命令json 或 diff
        -f FILE, --file=FILE 输出文件名
        -n DBS, --db=DBS 数据库ID。可以提供多个数据库。如果没有指定,包含所有数据库。
        -k KEYS, --key=KEYS 导出键。可以是正则表达式。

        • 使用示例:
          • 解析dump文件并以JSON格式标准输出
            #/usr/local/python/bin/rdb --command json /data/redis_data/6379/dump.rdb
          • 只解析符合正则的keys
            #/usr/local/python/bin/rdb --command json --key “sences_2.*” /data/redis_data/6379/dump.rdb
          • 只解析以“a”为开头的hash且位于数据库ID为2的
            #/usr/local/python/bin/rdb --command json --db 2 --type hash --key “a.*” /data/redis_data/6379/dump.rdb
      • redis-memory-for-key单key内存分析使用说明

        单个key所使用的内存量:
        - 使用redis-memory-for-key命令,导出单个key的内存情况
        - redis-memory-for-key依赖redis-py包
        - 需要安装redis模块

        当出现ImportError: No module named redis时,需要安装redis模块
        #/usr/local/python/bin/pip install redis

        #/usr/local/python/bin/easy_install redis

        使用讲解:

        #/usr/local/python/bin/redis-memory-for-key --help
        Usage: redis-memory-for-key [options] redis-key
        Examples :

        redis-memory-for-key user:13423
        redis-memory-for-key -h localhost -p 6379 user:13423

        Options:

        -h, --help show this help message and exit
        -s HOST, --server=HOST Redis Server hostname. Defaults to 127.0.0.1
        -p PORT, --port=PORT Redis Server port. Defaults to 6379
        -a PASSWORD, --password=PASSWORD Password to use when connecting to the server
        -d DB, --db=DB Database number, defaults to 0

  3. eureka的外网注册,访问]

#注册服务到服务注册中心
eureka.client.register-with-eureka=true
#设置健康检查页面
eureka.instance.health-check-url=http://${eureka.instance.ip-address}:${eureka.instance.non-secure-port}/health
#配置状态页面为swagger-bootstrap-ui(封装swagger的开源项目,用户界面比较友好,推荐一个)接口页面,默认为项目的info端点页面
eureka.instance.status-page-url=http://${eureka.instance.ip-address}:${eureka.instance.non-secure-port}/doc.html
#设置实例ID名称
eureka.instance.instance-id=${eureka.instance.ip-address}:${spring.application.name}:${eureka.instance.non-secure-port}


#############主要是下面的配置
#设置使用IP
eureka.instance.prefer-ip-address=true
#设置外网IP号
eureka.instance.ip-address=49.10.22.106
#设置外网端口号
eureka.instance.non-secure-port=5565
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值