如何查找Redis中有但是DB没有的Key

1.首先导出redis的rdb文件
redis-cli -h 127.0.0.1 -p 3306 -a 密码 --rdb xxhTest.rdb
2.安装pip install rdbtools
3.导出所有的key存储到文件 rdb -c memory --key "xxh:test:.*" xxhTest.rdb | awk -F "," '{print $3}'   > keys.csv
4.新建数据库表:
CREATE TABLE `redis_keys` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `redis_key` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT 'redisKey',
  PRIMARY KEY (`id`),
  KEY `inx_rediskey` (`redis_key`)
) ;
5. mysql -h127.0.0.1 -u root -p
6.load data local infile "/root/keys.csv" into table redis_keys  lines terminated by '\n' (redis_key);
7. 拼接出DB中的Key
create table db_keys(
`_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',PRIMARY KEY (`_id`)
)
as         
select concat('xxh:test:',store_code,':',item_code,':',store_type) dbkeys from xxh_01.xxh_stock ss  
union all
select concat('xxh:test:',store_code,':',item_code,':',store_type) dbkeys from xxh_02.xxh_stock ss 

8. alter table db_keys add index inx_dbkey(dbkeys)
9. select  r.redis_key   from  redis_keys r left join db_keys k 
on r.redis_key=k.dbkeys
where k.dbkeys is null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值