redis scan删除key的方法封装
/**
* @desc 迭代式的删除redis key
* 用法:
* $redis = BaseService::S()->getRedisConfig(\Yii::$app->redis2);
* RedisHelper::delByScan(['mindCard'], $redis);
* @author yanglb@immatchu.com
* @created time 2018-12-29
* @param object $redisInstance redis数据库实例
* @param array $matchGroup 要删除的key(可以是key的前缀)所组成的数组
* @param int $count 一次最多删除多少条key
* @return bool
*/
public static function delByScan($redisInstance, array $matchGroup = [], $count = 1000)
{
if (empty($matchGroup)) {
return false;
}
$redis = $redisInstance;
$it = null;
do {
$arr_keys = $redis->scan($it, null, $count);
if (is_array($arr_keys) && count($arr_keys) > 0) {
foreach ($arr_keys as $key) {
foreach ($matchGroup as $match) {
if (strpos($key, $match) !== false) {
$redis->del($key);
}
}
}
}
} while ($it > 0);
return true;
}
redis scan删除key的方法封装的更多相关文章
- Redis批量删除KEY的方法
Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作. 代码如下: redis-cli keys “* ...
- python中redis查看剩余过期时间以及用正则通配符批量删除key的方法
# -*- coding: utf-8 -*- import redis import datetime ''' # 1. redis设置过期时间的两种方式 expire函数设置过期时间为10秒.10 ...
- redis 模糊删除key
redis-cli KEYS "pattern" | xargs redis-cli DEL Redis keys命令支持模式匹配,但是del命令不支持模式匹配,有时候需要根据一定 ...
- Redis模式匹配删除key
Redis keys命令支持模式匹配,但是del命令不支持模式匹配,有时候需要根据一定的模式来模糊删除key,这时只能结合shell命令来完成了. 具体命令是: redis-cli KEYS &quo ...
- redis批量删除key 远程批量删除key
一.遇到的问题 在开发的过程中,经常会遇到要批量删除某种规则的key,如缓存的课程数据“course-课程uid”,其中课程uid是变量,我们需要删除"course-*"这一类的数 ...
- Redis批量删除key的小技巧,你知道吗?
在使用redis的过程中,经常会遇到要批量删除某种规则的key,但是redis提供了批量查询一类key的命令keys或scan,没有提供批量删除某种规则key的命令,怎么办?看完本文即可,哈哈. 本文 ...
- redis批量删除key
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #fffff ...
- redis 批量删除key
redis-cli -h -p keys -p del s
- redis批量删除key 命令
redis-cli -n 数据库编号 -a 密码 keys "过滤条件" | xargs redis-cli -n 数据库编号 -a 密码 del Demo: redis-cli ...
随机推荐
- nginx自定义header支持
今天配置nginx的时候遇到一个问题,直接访问接口没有问题,但是通过nginx转发之后,总是报token失效,无法获取token值,发现请求头丢失了. 默认是不支持非nginx标准的用户自定义head ...
- vue数据修改 但未渲染页面
1. 普通的 `1.1 this.$set('obj',key,value); 1.2 this.splice(); 2.数据层次太多,没有触发render函数进行自动更新,需手动调用: this.$ ...
- JVM概念以及常用设置
DAY 1 Jvm- java虚拟机 类加载子系统 加载class文件到方法区 方法区 存放类信息 常量信息 常量池信息 辅助堆栈的永久区,解决堆栈信息的产生,是先决条件 3. Java堆(重要) ...
- Qt的子窗口和父窗口阻塞问题
在图形界面中,软件设计者通常需要将活跃窗口限制为一个.在某个窗口活跃时,它的父窗口被它挡住或者挡住一部分,这时候用鼠标去点击父窗口是没有作用的.问题的关键在于将子窗口设置模态: void MainWi ...
- gulp的使用(二)之gulpfile.js文件的配置
Gulpfile.js是什么文件: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她, ...
- C语言---指针变量详解3
指针可以指向一份普通类型的数据,例如 int.double.char 等,也可以指向一份指针类型的数据,例如 int *.double *.char * 等.如果一个指针指向的是另外一个指针,我们就称 ...
- 运动控制之一_PID控制理论
PID算法是早期发展起来的控制算法,该算法因其简单.鲁棒性强且可靠性高而被广泛地应用于过程控制和运动控制中. 常规的PID控制系统原理框图如下所示: PID控制系统原理图 误差信号Err(t)输入到控 ...
- 排序算法C++实现
先按照王道系列的伪代码,写了一下常见的排序算法.代码先放这儿,先不做算法分析,回头再来分析消化. // 排序算法.cpp : 定义控制台应用程序的入口点. // #include "stda ...
- 神州数码DEIGRP路由协议配置
实验要求:了解DEIGRP及其配置方法 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface l0 进入端口 ip addres ...
- Linux 环境下安装RabbitMQ的步骤
#下载erlangcd /usr/local/devwget wget http://erlang.org/download/otp_src_17.5.tar.gz # 解压tar -xzvf otp ...