8.redis-BigKey

一.BigKey

  1.海量数据里如何查询某一固定前缀的key

scan cursor match key* [COUNT count]

  2.如何限制keys *, flushdb,flushall等危险命令防止误删除

rename-command keys ""
rename-command flushdb ""
rename-command flushall ""

  3.memory usage 命令做什么用

    1) 计算每个key占的字节数

    2) memory usage key1 [samples 5]

  4.Bigkey多大算大?如何发现,如何删除,如何处理

    1) 多大算大:字符串不能超10K, hash,list,set,zset不能超5000条

    2) 如何发现:

redis-cli -a 111111 -h 127.0.0.1 -p 6379 --bigkeys

# 每隔100条休眠0.1秒,防止剧烈抬升

redis-cli -a 111111 -h 127.0.0.1 -p 6379 --bigkeys -l 0.1

memory usage

    3) 如何删除:非字符串的bigkey,不要使用del删除,使用hsacn,sscan,zset渐进删除,同时要注意防止bigkey过期的自动删除,内存不均,集群迁移困难,超时删除,网络阻塞

string: 用del,unlink

hash: hscan + hdel

list: 使用ltrim + del

set: sscan + srem删除

zset: zscan + zremrangebyrank

  5.Bigkey调优,懒性释放lazyfree

lazyfree-lazy-server-del yes

replica-lazy-flush no yes

lazyfree-lazy-user-del yes

  6.Morekey生产上redis数据库有1000w记录,如何遍历

    1) 插入1000万条测试key

for((i=1;i<=100*10000;i++)); do echo "set k$i v$i" >> /tmp/redisTest.txt; done;

    2) 导入到redis

cat /tmp/redisTest.txt | redis-cli -h 127.0.0.1 -p 6379 -a 111111 --pipe

    3) 查看数量

dbsize

    4) 不用keys,用scan

scan 0 math key1 count 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wang_peng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值