在不影响性能的情况下,怎么快速批量删除redis数据?
黄舟
黄舟 2017-04-21 11:15:52
0
4
799

业务场景:
redis数据切换到Oracle,取消持久化,redis只做缓存

具体需求:
从redis从库里获得了400w个无过期时间的hashkey,需要在主库中将其删除

矛盾点:
1.如果直接批量删除会导致redis拥塞,影响正常业务
2.如果每删除一个key,sleep50ms,不会影响业务,但是根据经验要跑两天

最终问题:
在不影响性能的情况下,怎么快速批量删除redis数据?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(4)
Peter_Zhu

Redis memadamkan kunci dengan cepat, malah 4 juta kunci tidak menjadi masalah. Saya mengesyaki kesesakan sebenarnya adalah rangkaian.

Jika anda memadamkan kunci satu demi satu, setiap kali anda menghantar arahan, pelanggan akan menunggu balasan daripada redis, yang membazirkan banyak lebar jalur rangkaian.

Anda boleh cuba menggunakan saluran paip/urus niaga. Tanpa menepu lebar jalur rangkaian pada bahagian redis, arahan dihantar pada kelajuan maksimum dan kemudian dilaksanakan sekaligus.

Jika ini tidak berjaya, anda boleh menulis skrip Lua untuk mengenal pasti dan memadam kekunci yang tidak berguna, dan menghantarnya ke redis untuk dilaksanakan dengan eval. Ini tidak sepatutnya menyekat rangkaian.

Jika ini masih menjejaskan perniagaan. . Penyelesaian muktamad ialah mencipta tuan/hamba, memadamkan kunci pada hamba, dan menggunakan tuan untuk mengendalikan permintaan. Selepas memadamkan kunci, promosikan hamba kepada tuan, dan kemudian pindahkan permintaan kepadanya.

迷茫

Cuba perintah eval redis.

Sebagai contoh, padamkan semua KEY bermula dengan cara lama:

eval "redis.call('del', unpack(redis.call('keys','old-fashioned:*')))" 0

Jika satu pemadaman menggunakan banyak prestasi, anda boleh mempertimbangkan untuk memadam dalam kelompok.

伊谢尔伦

Pada pendapat saya, anda boleh memadamnya pada pukul 2 tengah malam Masa lag paling lama mungkin 1 minit tidak ramai yang menggunakannya pada masa ini, melainkan 24 laman web trafik jam seperti Baidu Taobao! Tidak perlu berterima kasih kepada saya, nama saya Lei Feng

巴扎黑
$ redis-cli --scan --pattern 'user:*' | xargs -L 1000 redis-cli del

bermula dengan Redis 3.4:

$ redis-cli --scan --pattern 'user:*' | xargs -L 1000 redis-cli unlink
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan