redis的大key和热key问题

1.redis的大key和热key

redis的大key和热key实际上就是经常被访问的key或者占用空间比较大的key。
有什么影响?举个栗子,比如说某个明星出轨了,这个明星的搜索量就会暴增,对redis造成很大的冲击。

2.热/大key的预估和评审

redis查看大key命令
redis-cli --bigkeys
redis查看热key命令
redis-cli --hotkeys

1.根据业务经验判断

比如做一个秒杀系统,根据要秒杀的商品就可以知道哪些key会成为热key,但是不是所有的业务都能这样判断。

2.代码补偿

客户端代码进行数据手收集和统计,但是也存在一个问题,代码侵入。

3.使用facebookarchive/redis-faina

1.去github拉代码
git clone https://github.com/facebookarchive/redis-faina.git
2.cd redis-faina/
3.执行命令:redis-cli -p 6379 MONITOR > redis-options.log(开始监控)
4.查看日志: ./redis-faina.py redis.log

但是该命令在高并发的条件下,有内存增暴增的隐患,还会降低redis的性能。

4.其他思路

利用2级缓存
备份热key。

/**
 * @auther yhd
 * @create 2020-11-11 12:23
 */
public class RedisMonitorDemo
{
    public static final String HOST = "192.168.111.147";
    public static final int PORT = 6379;

    public static void main(String[] args)
    {
        //只能监控单机redis,对于集群只能多个监听一块走
        Jedis jedis = new Jedis(HOST, PORT);

        System.out.println("------开始监听。。。。。。");
        jedis.monitor(new JedisMonitor()
        {
            @Override
            public void onCommand(String command)
            {
                System.out.println("------最近正在使用的key: "+command);
            }
        });

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值