redis 模糊删除实现

redis 没有直接提供模糊删除的实现,我们可以根据现有的指令进行组合实现:

import java.util.Arrays;
import java.util.Set;

import javax.annotation.Resource;

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import com.nonobank.application.service.RedisCacheService;

@Service("redisCacheService")
public class RedisCacheServiceImpl implements RedisCacheService{
    //private final Logger logger = LoggerFactory.getLogger(getClass());

    @Resource(name = "stringRedisTemplate")
    private RedisTemplate<String, String> redisTemplate;    

    @Override
    public void deleteByKey(String key) {
        redisTemplate.delete(key);
    }

    @Override
    public void deleteByPrex(String prex) {
        Set<String> keys=redisTemplate.keys(prex+"*");

        /*for test
         *Iterator<String> it=keys.iterator();
         * while(it.hasNext()){
            logger.info(it.next());
        }*/
        redisTemplate.delete(keys);
    }

    @Override
    public void deleteBySuffix(String suffix) {
        Set<String> keys=redisTemplate.keys("*"+suffix);
        redisTemplate.delete(keys);
    }

    @Override
    public void deleteByKeys(String... keys) {
        redisTemplate.delete(Arrays.asList(keys));
    }
}
时间: 2024-10-06 21:58:43

redis 模糊删除实现的相关文章

redis 模糊删除key

redis-cli KEYS "pattern" | xargs redis-cli DEL Redis keys命令支持模式匹配,但是del命令不支持模式匹配,有时候需要根据一定的模式来模糊删除key,这时只能结合shell命令来完成了. 具体命令是: redis-cli KEYS "pattern" | xargs redis-cli DEL 其中pattern是keys命令支持的模式,这样就可以模糊删除key了.服务器上测试删除150万条数据的效率也是很高的.

redis 批量删除key

批量删除Key Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作 redis-cli keys "*" | xargs redis-cli del //如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径 //如:/opt/redis/redis-cli keys "*" | xargs /opt/redis/redis-cli del 如

jQuery扩展 模糊删除sessionStroage

$.extend({ removeStorageLike : function(name){ //模糊删除 for(var k in sessionStorage){ if(k.indexOf(name)>-1) sessionStorage.removeItem(k); } } }); sessionStorage['test_01'] = 'fff';//存入 sessionStorage['test_02'] = 'fff22';//存入 sessionStorage['past_03']

如履薄冰 —— Redis懒惰删除的巨大牺牲

前言 之前我们介绍了Redis懒惰删除的特性,它是使用异步线程对已经删除的节点进行延后内存回收.但是还不够深入,所以本节我们要对异步线程逻辑处理的细节进行分析,看看Antirez是如何实现异步线程处理的.异步线程在Redis内部有一个特别的名称,它就是BIO,全称是Background IO,意思是在背后默默干活的IO线程.不过内存回收本身并不是什么IO操作,只是CPU的计算消耗可能会比较大而已. 懒惰删除的最初实现不是异步线程 Antirez实现懒惰删除时,它并不是一开始就想到了异步线程.最初

Redis 批量删除Redis的key 正则匹配删除

del 删除单个key方便 要是删除多个就不是很方便了 这时候可以使用xsrsg来批量删除 1.退出redis 2.匹配CCPAI:开头的所有key*删除 redis-cli -a 密码 -h host -p 端口号 --scan --pattern 'CCPAI:*' | xargs redis-cli -a 密码 -h host -p 端口号 del redis-cli -a 密码 -h host -p 端口号 keys 'CCPAI:*' | xargs redis-cli -a 密码 -

Redis批量删除的方法

Redis批量删除需要借助linux的xargs命令: redis-cli -h 127.0.0.1 -p 6379 keys test* | xargs -r -t -n1 ./redis-cli -h 127.0.0.1 -p 6379 del #首先查出所有test开头的key,然后批量删除 补充1:xargs命令后需加上参数-r,不然当keys的数量为0时,就会报错 (error) ERR wrong number of arguments for ‘del’ command 补充2:x

redis 模糊查询与删除

创建一条数据 set  name1  zhangsan 查询 get name1 在创建一条数据 set name2 lisi 查询 get name2 模糊查询 keys name* 查询结果  name1 name2 删除当前库中所有key flushdb 删除多有库中所有key flushall 批量删除以name开头的所有key 退出redis-cli 客户端 执行命令:redis-cli keys "name*" | xargs redis-cli del 执行结果 (int

redis中模糊删除

/usr/local/redis/bin/redis-cli -h xx.xx.xx.xx KEYS "*floor*" | xargs /usr/local/redis/bin/redis-cli DEL

redis的删除库应用(linux)

1.首先从linux进入redis的安装目录下 2.用redis-cli在Shell命令行下启动Redis客户端工具. 3.select 库名 进入到库下 4.flushdb 刷新当前库 redis的相应的命令: 三.命令示例: 1. KEYS/RENAME/DEL/EXISTS/MOVE/RENAMENX:    #在Shell命令行下启动Redis客户端工具.    /> redis-cli    #清空当前选择的数据库,以便于对后面示例的理解.    redis 127.0.0.1:637